diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index bea3e77..6dea7b3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + android:src="@mipmap/default_image" /> @@ -66,10 +67,10 @@ android:textColor="@color/white" /> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index bea3e77..6dea7b3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + android:src="@mipmap/default_image" /> @@ -66,10 +67,10 @@ android:textColor="@color/white" /> - - - - - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index bea3e77..6dea7b3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + android:src="@mipmap/default_image" /> @@ -66,10 +67,10 @@ android:textColor="@color/white" /> - - - - - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index bea3e77..6dea7b3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + android:src="@mipmap/default_image" /> @@ -66,10 +67,10 @@ android:textColor="@color/white" /> - - - - + diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index bea3e77..6dea7b3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + android:src="@mipmap/default_image" /> @@ -66,10 +67,10 @@ android:textColor="@color/white" /> - - - - + diff --git a/app/src/main/res/layout/item_big_picture.xml b/app/src/main/res/layout/item_big_picture.xml deleted file mode 100644 index d90eb44..0000000 --- a/app/src/main/res/layout/item_big_picture.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index bea3e77..6dea7b3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + android:src="@mipmap/default_image" /> @@ -66,10 +67,10 @@ android:textColor="@color/white" /> - - - - + diff --git a/app/src/main/res/layout/item_big_picture.xml b/app/src/main/res/layout/item_big_picture.xml deleted file mode 100644 index d90eb44..0000000 --- a/app/src/main/res/layout/item_big_picture.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_notice_rv_l.xml b/app/src/main/res/layout/item_notice_rv_l.xml index e883258..b3ed54b 100644 --- a/app/src/main/res/layout/item_notice_rv_l.xml +++ b/app/src/main/res/layout/item_notice_rv_l.xml @@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="@dimen/dp_3" - android:src="@mipmap/default_avatar" /> + android:background="@color/mainBackground" /> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index bea3e77..6dea7b3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + android:src="@mipmap/default_image" /> @@ -66,10 +67,10 @@ android:textColor="@color/white" /> - - - - + diff --git a/app/src/main/res/layout/item_big_picture.xml b/app/src/main/res/layout/item_big_picture.xml deleted file mode 100644 index d90eb44..0000000 --- a/app/src/main/res/layout/item_big_picture.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_notice_rv_l.xml b/app/src/main/res/layout/item_notice_rv_l.xml index e883258..b3ed54b 100644 --- a/app/src/main/res/layout/item_notice_rv_l.xml +++ b/app/src/main/res/layout/item_notice_rv_l.xml @@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="@dimen/dp_3" - android:src="@mipmap/default_avatar" /> + android:background="@color/mainBackground" /> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index bea3e77..6dea7b3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + android:src="@mipmap/default_image" /> @@ -66,10 +67,10 @@ android:textColor="@color/white" /> - - - - + diff --git a/app/src/main/res/layout/item_big_picture.xml b/app/src/main/res/layout/item_big_picture.xml deleted file mode 100644 index d90eb44..0000000 --- a/app/src/main/res/layout/item_big_picture.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_notice_rv_l.xml b/app/src/main/res/layout/item_notice_rv_l.xml index e883258..b3ed54b 100644 --- a/app/src/main/res/layout/item_notice_rv_l.xml +++ b/app/src/main/res/layout/item_notice_rv_l.xml @@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="@dimen/dp_3" - android:src="@mipmap/default_avatar" /> + android:background="@color/mainBackground" /> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index bea3e77..6dea7b3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + android:src="@mipmap/default_image" /> @@ -66,10 +67,10 @@ android:textColor="@color/white" /> - - - - + diff --git a/app/src/main/res/layout/item_big_picture.xml b/app/src/main/res/layout/item_big_picture.xml deleted file mode 100644 index d90eb44..0000000 --- a/app/src/main/res/layout/item_big_picture.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_notice_rv_l.xml b/app/src/main/res/layout/item_notice_rv_l.xml index e883258..b3ed54b 100644 --- a/app/src/main/res/layout/item_notice_rv_l.xml +++ b/app/src/main/res/layout/item_notice_rv_l.xml @@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="@dimen/dp_3" - android:src="@mipmap/default_avatar" /> + android:background="@color/mainBackground" /> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index bea3e77..6dea7b3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + android:src="@mipmap/default_image" /> @@ -66,10 +67,10 @@ android:textColor="@color/white" /> - - - - + diff --git a/app/src/main/res/layout/item_big_picture.xml b/app/src/main/res/layout/item_big_picture.xml deleted file mode 100644 index d90eb44..0000000 --- a/app/src/main/res/layout/item_big_picture.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_notice_rv_l.xml b/app/src/main/res/layout/item_notice_rv_l.xml index e883258..b3ed54b 100644 --- a/app/src/main/res/layout/item_notice_rv_l.xml +++ b/app/src/main/res/layout/item_notice_rv_l.xml @@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="@dimen/dp_3" - android:src="@mipmap/default_avatar" /> + android:background="@color/mainBackground" /> #FF03DAC5 #FF018786 + #FFFF0000 + #FF0000FF #FF000000 #FFFFFFFF #FF808080 diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index bea3e77..6dea7b3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + android:src="@mipmap/default_image" /> @@ -66,10 +67,10 @@ android:textColor="@color/white" /> - - - - + diff --git a/app/src/main/res/layout/item_big_picture.xml b/app/src/main/res/layout/item_big_picture.xml deleted file mode 100644 index d90eb44..0000000 --- a/app/src/main/res/layout/item_big_picture.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_notice_rv_l.xml b/app/src/main/res/layout/item_notice_rv_l.xml index e883258..b3ed54b 100644 --- a/app/src/main/res/layout/item_notice_rv_l.xml +++ b/app/src/main/res/layout/item_notice_rv_l.xml @@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="@dimen/dp_3" - android:src="@mipmap/default_avatar" /> + android:background="@color/mainBackground" /> #FF03DAC5 #FF018786 + #FFFF0000 + #FF0000FF #FF000000 #FFFFFFFF #FF808080 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6eb3da2..25e4dfa 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,9 +1,9 @@ - 华东计量 - 中国航天科工集团二院二〇三所 + 航天计量 + 航天计量检测技术(江苏)有限公司 暂时无法确定 - 中国航天科工集团二院二〇三所 版权所有 - Copyright © 2023 – 2050 Casic. All rights reserved. + 航天计量检测技术(江苏)有限公司 版权所有 + Copyright © 2023 – 2025 航天计量检测技术(江苏)有限公司. All rights reserved. 请输入问题描述,点击下方\"+\"号提交截图,帮助我们更快定位您的问题 diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index bea3e77..6dea7b3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + android:src="@mipmap/default_image" /> @@ -66,10 +67,10 @@ android:textColor="@color/white" /> - - - - + diff --git a/app/src/main/res/layout/item_big_picture.xml b/app/src/main/res/layout/item_big_picture.xml deleted file mode 100644 index d90eb44..0000000 --- a/app/src/main/res/layout/item_big_picture.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_notice_rv_l.xml b/app/src/main/res/layout/item_notice_rv_l.xml index e883258..b3ed54b 100644 --- a/app/src/main/res/layout/item_notice_rv_l.xml +++ b/app/src/main/res/layout/item_notice_rv_l.xml @@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="@dimen/dp_3" - android:src="@mipmap/default_avatar" /> + android:background="@color/mainBackground" /> #FF03DAC5 #FF018786 + #FFFF0000 + #FF0000FF #FF000000 #FFFFFFFF #FF808080 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6eb3da2..25e4dfa 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,9 +1,9 @@ - 华东计量 - 中国航天科工集团二院二〇三所 + 航天计量 + 航天计量检测技术(江苏)有限公司 暂时无法确定 - 中国航天科工集团二院二〇三所 版权所有 - Copyright © 2023 – 2050 Casic. All rights reserved. + 航天计量检测技术(江苏)有限公司 版权所有 + Copyright © 2023 – 2025 航天计量检测技术(江苏)有限公司. All rights reserved. 请输入问题描述,点击下方\"+\"号提交截图,帮助我们更快定位您的问题 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 2f88d49..5f5e033 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -156,4 +156,20 @@ true @dimen/dp_10 + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index e4c1e38..e87a161 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,26 +1,20 @@ import java.text.SimpleDateFormat -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'org.greenrobot.greendao' -apply plugin: 'com.huawei.agconnect' +plugins { + id('com.android.application') + id('org.jetbrains.kotlin.android') + id('com.huawei.agconnect') + id('com.hihonor.mcs.asplugin') +} android { - signingConfigs { - config { - storeFile file('Meterage.jks') - storePassword '123456789' - keyAlias 'key0' - keyPassword '123456789' - } - } - - compileSdkVersion 33 + namespace 'com.casic.xz.meterage' + compileSdk 35 defaultConfig { - applicationId "com.casic.xz.meterage" - minSdkVersion 23 - targetSdkVersion 33 + applicationId 'com.casic.xz.meterage' + minSdk 26 + targetSdk 36 versionCode 1 versionName "1.0.0.0-beta" @@ -30,10 +24,6 @@ // 华为 相关应用参数 HUAWEI_APP_ID : "108768613", - // 小米相关应用参数 - XIAOMI_APP_ID : "", - XIAOMI_APP_KEY : "", - // OPPO 相关应用参数 OPPO_APP_KEY : "46a6fec8a9314d6da4899fb3297f58bc", OPPO_APP_SECRET: "b00e532457fc4bd2974c3ac060243ce7", @@ -42,27 +32,28 @@ VIVO_APP_ID : "105663980", VIVO_APP_KEY : "46b62dd4994a52d6f9a78a9c770f1e46", - // 魅族相关应用参数 - MEIZU_APP_ID : "", - MEIZU_APP_KEY : "", - // 荣耀相关应用参数 HONOR_APP_ID : "104412883" ] ndk { - abiFilters 'armeabi-v7a', "arm64-v8a" + abiFilters 'arm64-v8a', 'armeabi-v7a', 'armeabi' + } + } + + signingConfigs { + release { + storeFile file('Meterage.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' } } buildTypes { - debug { - signingConfig signingConfigs.config - } release { - signingConfig signingConfigs.config minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -75,27 +66,16 @@ jvmTarget = '1.8' } - kotlin { - experimental { - coroutines 'enable' + buildFeatures { + viewBinding true + buildConfig true + } + + applicationVariants.configureEach { + outputs.configureEach { + outputFileName = "XZJL_${getBuildDate()}_${defaultConfig.versionName}.apk" } } - - viewBinding { - enabled true - } - - applicationVariants.configureEach { variant -> - variant.outputs.configureEach { - outputFileName = "XZJL_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" - } - } - - greendao { - schemaVersion 1//数据库版本号 - targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 - daoPackage "${defaultConfig.applicationId}.greendao"//设置DaoMaster、DaoSession、Dao包名 - } } static def getBuildDate() { @@ -105,10 +85,9 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) - //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'androidx.core:core-ktx:1.9.0' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.1.5' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.core:core-ktx:1.15.0' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 @@ -119,29 +98,26 @@ //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //图片加载框架 - implementation 'com.github.bumptech.glide:glide:4.9.0' + implementation 'com.github.bumptech.glide:glide:4.14.2' //图片选择框架 implementation 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 implementation 'top.zibin:Luban:1.1.8' //官方Json解析库 implementation 'com.google.code.gson:gson:2.10.1' - def vm_version = "2.5.1" //Kotlin协程 - implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" - //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.8.1' - //okhttp3日志拦截器 implementation 'com.squareup.okhttp3:logging-interceptor:4.6.0' //网络请求和接口封装 implementation 'com.squareup.retrofit2:retrofit:2.9.0' - implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.okhttp3:okhttp:4.12.0' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //ZBar(综合Java和C++扫码),生成二维码 @@ -151,9 +127,10 @@ //PDF预览 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' //单项/数字、二三级联动、日期/时间等滚轮选择器 - implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.11' + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.1.13' //数据库框架 - implementation 'org.greenrobot:greendao:3.3.0' + implementation 'androidx.room:room-runtime:2.6.1' + annotationProcessor 'androidx.room:room-compiler:2.5.2' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' //WebView @@ -163,13 +140,11 @@ //个推核心组件 implementation 'com.getui:gtc:3.2.1.0' // 厂商推送集成 - implementation 'com.getui.opt:hwp:3.1.1' // 华为 - implementation 'com.huawei.hms:push:6.9.0.300' - implementation 'com.getui.opt:xmp:3.3.1' // 小米 - implementation 'com.assist-v3:oppo:3.3.0' // oppo + implementation 'com.getui.opt:hwp:3.1.1' + implementation 'com.huawei.hms:push:6.11.0.300' + implementation 'com.assist-v3:oppo:3.3.0' implementation 'commons-codec:commons-codec:1.15' implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.assist-v3:vivo:3.1.1' // vivo - implementation 'com.getui.opt:mzp:3.2.3' // 魅族 - implementation 'com.getui.opt:honor:3.3.0' // 荣耀 + implementation 'com.assist-v3:vivo:3.1.1' + implementation 'com.getui.opt:honor:3.3.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cef91a3..fcdda23 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ - + @@ -144,6 +146,9 @@
+ + + diff --git a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt index 54f19f0..11018ac 100644 --- a/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt +++ b/app/src/main/java/com/casic/xz/meterage/base/BaseApplication.kt @@ -2,8 +2,8 @@ import android.app.Application import android.util.Log -import com.casic.xz.meterage.greendao.DaoMaster -import com.casic.xz.meterage.greendao.DaoSession +import androidx.room.Room.databaseBuilder +import com.casic.xz.meterage.utils.MeterageDataBase import com.igexin.sdk.PushManager import com.pengxh.kt.lite.utils.SaveKeyValues import kotlin.properties.Delegates @@ -16,10 +16,10 @@ private var application: BaseApplication by Delegates.notNull() fun get() = application - - private lateinit var daoSession: DaoSession } + lateinit var dataBase: MeterageDataBase + override fun onCreate() { super.onCreate() application = this @@ -29,12 +29,8 @@ PushManager.getInstance().setDebugLogger(this) { Log.d(kTag, it) } - val devOpenHelper = DaoMaster.DevOpenHelper(this, "Meterage.db", null) - val daoMaster = DaoMaster(devOpenHelper.writableDatabase) - daoSession = daoMaster.newSession() - } - - fun getDaoSession(): DaoSession { - return daoSession + dataBase = databaseBuilder(this, MeterageDataBase::class.java, "Meterage.db") + .allowMainThreadQueries() + .build() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java index 6a46a3a..839cef8 100644 --- a/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java +++ b/app/src/main/java/com/casic/xz/meterage/bean/SearchHistoryBean.java @@ -1,47 +1,29 @@ package com.casic.xz.meterage.bean; -import org.greenrobot.greendao.annotation.Entity; -import org.greenrobot.greendao.annotation.Generated; -import org.greenrobot.greendao.annotation.Id; -import org.greenrobot.greendao.annotation.Unique; +import androidx.room.Entity; +import androidx.room.PrimaryKey; -@Entity +@Entity(tableName = "search_history_table") public class SearchHistoryBean { - @Id(autoincrement = true) - private Long id;//主键自增 + @PrimaryKey(autoGenerate = true) + private int id;//主键自增 - @Unique private String uuid; private String keywords;//查询条件-关键字 private String searchType;//查询类型 private String userId;//用户Id private String searchTime;//查询的时间 - @Generated(hash = 2130561778) - public SearchHistoryBean(Long id, String uuid, String keywords, - String searchType, String userId, String searchTime) { - this.id = id; - this.uuid = uuid; - this.keywords = keywords; - this.searchType = searchType; - this.userId = userId; - this.searchTime = searchTime; + public int getId() { + return id; } - @Generated(hash = 1570282321) - public SearchHistoryBean() { - } - - public Long getId() { - return this.id; - } - - public void setId(Long id) { + public void setId(int id) { this.id = id; } public String getUuid() { - return this.uuid; + return uuid; } public void setUuid(String uuid) { @@ -49,7 +31,7 @@ } public String getKeywords() { - return this.keywords; + return keywords; } public void setKeywords(String keywords) { @@ -57,7 +39,7 @@ } public String getSearchType() { - return this.searchType; + return searchType; } public void setSearchType(String searchType) { @@ -65,7 +47,7 @@ } public String getUserId() { - return this.userId; + return userId; } public void setUserId(String userId) { @@ -73,7 +55,7 @@ } public String getSearchTime() { - return this.searchTime; + return searchTime; } public void setSearchTime(String searchTime) { diff --git a/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java new file mode 100644 index 0000000..bfaa4c0 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/dao/SearchHistoryDao.java @@ -0,0 +1,25 @@ +package com.casic.xz.meterage.dao; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; + +import com.casic.xz.meterage.bean.SearchHistoryBean; + +import java.util.List; + +@Dao +public interface SearchHistoryDao { + @Insert + void insert(SearchHistoryBean bean); + + @Query("SELECT COUNT(*) FROM search_history_table WHERE userId = :userId AND keywords = :keywords AND searchType = :searchType") + int isKeywordsExist(String userId, String keywords, String searchType); + + @Query("SELECT * FROM search_history_table WHERE searchType = :searchType") + List queryHistoryByType(String searchType); + + @Delete + void delete(SearchHistoryBean bean); +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index b90e814..9deed7e 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -131,16 +131,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - remindAdapter.setRefreshData(dataRows) + remindAdapter.refresh(dataRows) binding.remindLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - remindAdapter.setLoadMoreData(dataRows) + remindAdapter.loadMore(dataRows) binding.remindLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index ba7d3e4..5900f0f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -62,8 +62,8 @@ binding.userUnitView.text = user.deptName if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.default_avatar) + Glide.with(this) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt index 27704e7..8515643 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt index 4ec423d..ba4e2aa 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/CertificateFragment.kt @@ -37,16 +37,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - certificateAdapter.setRefreshData(dataRows) + certificateAdapter.refresh(dataRows) binding.certificateLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - certificateAdapter.setLoadMoreData(dataRows) + certificateAdapter.loadMore(dataRows) binding.certificateLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt index cbe4de8..2d24713 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/ContractRecordFragment.kt @@ -41,16 +41,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractRecordsAdapter.setRefreshData(dataRows) + contractRecordsAdapter.refresh(dataRows) binding.contractRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - contractRecordsAdapter.setLoadMoreData(dataRows) + contractRecordsAdapter.loadMore(dataRows) binding.contractRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt index 69e6422..ce8b1e7 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/customer/SampleRecordFragment.kt @@ -36,16 +36,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - sampleRecordsAdapter.setRefreshData(dataRows) + sampleRecordsAdapter.refresh(dataRows) binding.sampleRecordsLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - sampleRecordsAdapter.setLoadMoreData(dataRows) + sampleRecordsAdapter.loadMore(dataRows) binding.sampleRecordsLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt index 1183f69..d7fd62f 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/AwaitDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt index f419ede..4b44b68 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/CompletedDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt index c4b3384..0d5f1a0 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/detection/UnderDetectionFragment.kt @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt index 48b574a..91bdf80 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt @@ -66,7 +66,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = stateLogAdapter } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt index 539ad85..b72df5d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - fileAdapter.setRefreshData(dataRows) + fileAdapter.refresh(dataRows) binding.standardFileLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - fileAdapter.setLoadMoreData(dataRows) + fileAdapter.loadMore(dataRows) binding.standardFileLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt index 93701c1..88ae423 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/outfield/OutfieldDetectionFragment.kt @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - detectionAdapter.setRefreshData(dataRows) + detectionAdapter.refresh(dataRows) binding.outfieldLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - detectionAdapter.setLoadMoreData(dataRows) + detectionAdapter.loadMore(dataRows) binding.outfieldLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt index 0b82c75..330246d 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/AwaitTaskFragment.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt index 2679ea5..0885265 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/CompletedTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt index 1a03ad6..f9fdcc6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/OvertimeTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt index 0b36020..c666d3b 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/task/UnderTaskFragment.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - taskAdapter.setRefreshData(dataRows) + taskAdapter.refresh(dataRows) binding.detectionTaskLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(requireContext()) } - taskAdapter.setLoadMoreData(dataRows) + taskAdapter.loadMore(dataRows) binding.detectionTaskLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java deleted file mode 100644 index d714ce2..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoMaster.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabase.CursorFactory; -import android.util.Log; - -import org.greenrobot.greendao.AbstractDaoMaster; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseOpenHelper; -import org.greenrobot.greendao.database.StandardDatabase; -import org.greenrobot.greendao.identityscope.IdentityScopeType; - - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * Master of DAO (schema version 1): knows all DAOs. - */ -public class DaoMaster extends AbstractDaoMaster { - public static final int SCHEMA_VERSION = 1; - - /** Creates underlying database table using DAOs. */ - public static void createAllTables(Database db, boolean ifNotExists) { - SearchHistoryBeanDao.createTable(db, ifNotExists); - } - - /** Drops underlying database table using DAOs. */ - public static void dropAllTables(Database db, boolean ifExists) { - SearchHistoryBeanDao.dropTable(db, ifExists); - } - - /** - * WARNING: Drops all table on Upgrade! Use only during development. - * Convenience method using a {@link DevOpenHelper}. - */ - public static DaoSession newDevSession(Context context, String name) { - Database db = new DevOpenHelper(context, name).getWritableDb(); - DaoMaster daoMaster = new DaoMaster(db); - return daoMaster.newSession(); - } - - public DaoMaster(SQLiteDatabase db) { - this(new StandardDatabase(db)); - } - - public DaoMaster(Database db) { - super(db, SCHEMA_VERSION); - registerDaoClass(SearchHistoryBeanDao.class); - } - - public DaoSession newSession() { - return new DaoSession(db, IdentityScopeType.Session, daoConfigMap); - } - - public DaoSession newSession(IdentityScopeType type) { - return new DaoSession(db, type, daoConfigMap); - } - - /** - * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} - - */ - public static abstract class OpenHelper extends DatabaseOpenHelper { - public OpenHelper(Context context, String name) { - super(context, name, SCHEMA_VERSION); - } - - public OpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory, SCHEMA_VERSION); - } - - @Override - public void onCreate(Database db) { - Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION); - createAllTables(db, false); - } - } - - /** WARNING: Drops all table on Upgrade! Use only during development. */ - public static class DevOpenHelper extends OpenHelper { - public DevOpenHelper(Context context, String name) { - super(context, name); - } - - public DevOpenHelper(Context context, String name, CursorFactory factory) { - super(context, name, factory); - } - - @Override - public void onUpgrade(Database db, int oldVersion, int newVersion) { - Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables"); - dropAllTables(db, true); - onCreate(db); - } - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java b/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java deleted file mode 100644 index 0e80024..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/DaoSession.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.AbstractDaoSession; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.identityscope.IdentityScopeType; -import org.greenrobot.greendao.internal.DaoConfig; - -import java.util.Map; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. - -/** - * {@inheritDoc} - * - * @see org.greenrobot.greendao.AbstractDaoSession - */ -public class DaoSession extends AbstractDaoSession { - - private final DaoConfig searchHistoryBeanDaoConfig; - - private final SearchHistoryBeanDao searchHistoryBeanDao; - - public DaoSession(Database db, IdentityScopeType type, Map>, DaoConfig> - daoConfigMap) { - super(db); - - searchHistoryBeanDaoConfig = daoConfigMap.get(SearchHistoryBeanDao.class).clone(); - searchHistoryBeanDaoConfig.initIdentityScope(type); - - searchHistoryBeanDao = new SearchHistoryBeanDao(searchHistoryBeanDaoConfig, this); - - registerDao(SearchHistoryBean.class, searchHistoryBeanDao); - } - - public void clear() { - searchHistoryBeanDaoConfig.clearIdentityScope(); - } - - public SearchHistoryBeanDao getSearchHistoryBeanDao() { - return searchHistoryBeanDao; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java b/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java deleted file mode 100644 index 5923d02..0000000 --- a/app/src/main/java/com/casic/xz/meterage/greendao/SearchHistoryBeanDao.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.casic.xz.meterage.greendao; - -import android.database.Cursor; -import android.database.sqlite.SQLiteStatement; - -import com.casic.xz.meterage.bean.SearchHistoryBean; - -import org.greenrobot.greendao.AbstractDao; -import org.greenrobot.greendao.Property; -import org.greenrobot.greendao.database.Database; -import org.greenrobot.greendao.database.DatabaseStatement; -import org.greenrobot.greendao.internal.DaoConfig; - -// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. -/** - * DAO for table "SEARCH_HISTORY_BEAN". -*/ -public class SearchHistoryBeanDao extends AbstractDao { - - public static final String TABLENAME = "SEARCH_HISTORY_BEAN"; - - /** - * Properties of entity SearchHistoryBean.
- * Can be used for QueryBuilder and for referencing column names. - */ - public static class Properties { - public final static Property Id = new Property(0, Long.class, "id", true, "_id"); - public final static Property Uuid = new Property(1, String.class, "uuid", false, "UUID"); - public final static Property Keywords = new Property(2, String.class, "keywords", false, "KEYWORDS"); - public final static Property SearchType = new Property(3, String.class, "searchType", false, "SEARCH_TYPE"); - public final static Property UserId = new Property(4, String.class, "userId", false, "USER_ID"); - public final static Property SearchTime = new Property(5, String.class, "searchTime", false, "SEARCH_TIME"); - } - - - public SearchHistoryBeanDao(DaoConfig config) { - super(config); - } - - public SearchHistoryBeanDao(DaoConfig config, DaoSession daoSession) { - super(config, daoSession); - } - - /** Creates the underlying database table. */ - public static void createTable(Database db, boolean ifNotExists) { - String constraint = ifNotExists? "IF NOT EXISTS ": ""; - db.execSQL("CREATE TABLE " + constraint + "\"SEARCH_HISTORY_BEAN\" (" + // - "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id - "\"UUID\" TEXT UNIQUE ," + // 1: uuid - "\"KEYWORDS\" TEXT," + // 2: keywords - "\"SEARCH_TYPE\" TEXT," + // 3: searchType - "\"USER_ID\" TEXT," + // 4: userId - "\"SEARCH_TIME\" TEXT);"); // 5: searchTime - } - - /** Drops the underlying database table. */ - public static void dropTable(Database db, boolean ifExists) { - String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"SEARCH_HISTORY_BEAN\""; - db.execSQL(sql); - } - - @Override - protected final void bindValues(DatabaseStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - protected final void bindValues(SQLiteStatement stmt, SearchHistoryBean entity) { - stmt.clearBindings(); - - Long id = entity.getId(); - if (id != null) { - stmt.bindLong(1, id); - } - - String uuid = entity.getUuid(); - if (uuid != null) { - stmt.bindString(2, uuid); - } - - String keywords = entity.getKeywords(); - if (keywords != null) { - stmt.bindString(3, keywords); - } - - String searchType = entity.getSearchType(); - if (searchType != null) { - stmt.bindString(4, searchType); - } - - String userId = entity.getUserId(); - if (userId != null) { - stmt.bindString(5, userId); - } - - String searchTime = entity.getSearchTime(); - if (searchTime != null) { - stmt.bindString(6, searchTime); - } - } - - @Override - public Long readKey(Cursor cursor, int offset) { - return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0); - } - - @Override - public SearchHistoryBean readEntity(Cursor cursor, int offset) { - SearchHistoryBean entity = new SearchHistoryBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // keywords - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // searchType - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // userId - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // searchTime - ); - return entity; - } - - @Override - public void readEntity(Cursor cursor, SearchHistoryBean entity, int offset) { - entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); - entity.setUuid(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1)); - entity.setKeywords(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2)); - entity.setSearchType(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); - entity.setUserId(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); - entity.setSearchTime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); - } - - @Override - protected final Long updateKeyAfterInsert(SearchHistoryBean entity, long rowId) { - entity.setId(rowId); - return rowId; - } - - @Override - public Long getKey(SearchHistoryBean entity) { - if(entity != null) { - return entity.getId(); - } else { - return null; - } - } - - @Override - public boolean hasKey(SearchHistoryBean entity) { - return entity.getId() != null; - } - - @Override - protected final boolean isEntityUpdateable() { - return true; - } - -} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt index d4a45ea..7bf841b 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/DataBaseManager.kt @@ -2,21 +2,19 @@ import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.bean.SearchHistoryBean -import com.casic.xz.meterage.greendao.SearchHistoryBeanDao import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.SaveKeyValues -import java.util.* +import java.util.UUID class DataBaseManager private constructor() { companion object { - //Kotlin委托模式双重锁单例 - val get: DataBaseManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + val get by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { DataBaseManager() } } - private val searchBeanDao by lazy { BaseApplication.get().getDaoSession().searchHistoryBeanDao } + private val searchHistoryDao by lazy { BaseApplication.get().dataBase.searchHistoryDao() } private val userId by lazy { SaveKeyValues.getValue(LocaleConstant.USER_ID, "") } fun addSearchHistory(keywords: String, searchType: String) { @@ -26,31 +24,19 @@ bean.searchType = searchType bean.userId = userId.toString() bean.searchTime = System.currentTimeMillis().timestampToCompleteDate() - if (!isKeywordsExist(keywords, searchType)) { - searchBeanDao.insert(bean) + if (searchHistoryDao.isKeywordsExist(userId.toString(), keywords, searchType) == 0) { + searchHistoryDao.insert(bean) } } - private fun isKeywordsExist(keywords: String, searchType: String): Boolean { - val count = searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.Keywords.eq(keywords), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).count() - return count.toInt() != 0 - } - fun queryHistoryByType(searchType: String): MutableList { - return searchBeanDao.queryBuilder().where( - SearchHistoryBeanDao.Properties.UserId.eq(userId), - SearchHistoryBeanDao.Properties.SearchType.eq(searchType) - ).list() + return searchHistoryDao.queryHistoryByType(searchType) } fun deleteHistoryByType(searchType: String) { val list = queryHistoryByType(searchType) list.forEach { - searchBeanDao.delete(it) + searchHistoryDao.delete(it) } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt index e8e0b43..e643f62 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/GlideLoadEngine.kt @@ -5,12 +5,9 @@ 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.xz.meterage.R import com.luck.picture.lib.engine.ImageEngine import com.luck.picture.lib.utils.ActivityCompatHelper - class GlideLoadEngine private constructor() : ImageEngine { companion object { @@ -52,7 +49,6 @@ .override(180, 180) .sizeMultiplier(0.5f) .transform(CenterCrop(), RoundedCorners(8)) - .placeholder(R.mipmap.load_image_error) .into(imageView) } @@ -65,9 +61,6 @@ } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { - Glide.with(context) - .load(url) - .apply(RequestOptions().placeholder(R.mipmap.load_image_error)) - .into(imageView) + Glide.with(context).load(url).into(imageView) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java new file mode 100644 index 0000000..178aa9f --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/utils/MeterageDataBase.java @@ -0,0 +1,12 @@ +package com.casic.xz.meterage.utils; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +import com.casic.xz.meterage.bean.SearchHistoryBean; +import com.casic.xz.meterage.dao.SearchHistoryDao; + +@Database(entities = {SearchHistoryBean.class}, version = 1) +public abstract class MeterageDataBase extends RoomDatabase { + public abstract SearchHistoryDao searchHistoryDao(); +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt index eaf360d..636e4f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/BigImageActivity.kt @@ -1,20 +1,14 @@ package com.casic.xz.meterage.view -import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.viewpager.widget.PagerAdapter -import androidx.viewpager.widget.ViewPager -import com.bumptech.glide.Glide +import androidx.viewpager2.widget.ViewPager2 import com.casic.xz.meterage.R import com.casic.xz.meterage.base.ApplicationBaseActivity import com.casic.xz.meterage.databinding.ActivityBigImageBinding -import com.casic.xz.meterage.extensions.initImmersionBar -import com.luck.picture.lib.photoview.PhotoView -import com.pengxh.kt.lite.utils.Constant +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter +import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.utils.LiteKitConstant class BigImageActivity : ApplicationBaseActivity() { @@ -23,12 +17,36 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, false, R.color.black) - binding.leftBackView.setOnClickListener { finish() } + ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { + val index = intent.getIntExtra(LiteKitConstant.BIG_IMAGE_INTENT_INDEX_KEY, 0) + val urls = intent.getStringArrayListExtra(LiteKitConstant.BIG_IMAGE_INTENT_DATA_KEY) + if (urls == null || urls.isEmpty()) { + return + } + val imageSize = urls.size + binding.indexView.text = String.format("(${(index + 1)}/${imageSize})") + val adapter = object : NormalRecyclerAdapter(R.layout.item_big_image, urls) { + override fun convertView(viewHolder: ViewHolder, position: Int, item: String) { + viewHolder.setImageResource(R.id.photoView, item) + } + } + binding.viewPager.adapter = adapter + binding.viewPager.currentItem = index + adapter.setOnItemClickedListener(object : + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: String) { + finish() + } + }) + binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + binding.indexView.text = String.format("(${(position + 1)}/${imageSize})") + } + }) } override fun observeRequestState() { @@ -36,54 +54,6 @@ } override fun initEvent() { - val index: Int = intent.getIntExtra(Constant.BIG_IMAGE_INTENT_INDEX_KEY, 0) - val urls = intent.getStringArrayListExtra(Constant.BIG_IMAGE_INTENT_DATA_KEY) - if (urls == null || urls.size == 0) { - return - } - val imageSize = urls.size - binding.pageNumberView.text = String.format("(" + (index + 1) + "/" + imageSize + ")") - binding.imagePagerView.adapter = BigImageAdapter(this, urls) - binding.imagePagerView.currentItem = index - binding.imagePagerView.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, positionOffset: Float, positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - binding.pageNumberView.text = - String.format("(" + (position + 1) + "/" + imageSize + ")") - } - - override fun onPageScrollStateChanged(state: Int) {} - }) - } - - inner class BigImageAdapter( - private val context: Context, private val data: ArrayList - ) : PagerAdapter() { - - override fun getCount(): Int = data.size - - override fun isViewFromObject(view: View, any: Any): Boolean { - return view == any - } - - override fun instantiateItem(container: ViewGroup, position: Int): Any { - val view = - LayoutInflater.from(context).inflate(R.layout.item_big_picture, container, false) - val photoView: PhotoView = view.findViewById(R.id.photoView) - Glide.with(context).load(data[position]).into(photoView) - photoView.scaleType = ImageView.ScaleType.CENTER_INSIDE - container.addView(view) - //点击大图取消预览 - photoView.setOnClickListener { finish() } - return view - } - - override fun destroyItem(container: ViewGroup, position: Int, any: Any) { - container.removeView(any as View) - } + binding.leftBackView.setOnClickListener { finish() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt index 6119c37..f2bf32d 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/FeedbackActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view -import android.app.Activity import android.content.Intent import android.graphics.Color import android.os.Bundle import android.view.View -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -119,22 +116,19 @@ } } - private val selectCustomerLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.customerView.text = data.getStringExtra("entrustName") - binding.customerView.text = data.getStringExtra("entrustName") - - customerId = data.getStringExtra("customerId").toString() - customerName = binding.customerView.text.toString() - customerNumber = data.getStringExtra("customerNo").toString() - } - } - }) + customerId = data.getStringExtra("customerId").toString() + customerName = binding.customerView.text.toString() + customerNumber = data.getStringExtra("customerNo").toString() + } + } + } override fun initEvent() { imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt index 078b4f0..d83f9f0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanDeviceResultActivity.kt @@ -16,7 +16,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -28,7 +28,7 @@ private val tids = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt index b9a8902..aecb06a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/ScanSampleResultActivity.kt @@ -13,7 +13,7 @@ import com.pengxh.kt.lite.adapter.MultipleChoiceAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.toJson -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class ScanSampleResultActivity : ApplicationBaseActivity() { @@ -43,7 +43,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! args.forEach { tids.add(it) } @@ -77,10 +77,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt index a5ad1a2..7703766 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/UserInfoActivity.kt @@ -54,7 +54,7 @@ if (user.avatar.isNullOrBlank()) { Glide.with(this) - .load(R.mipmap.default_avatar) + .load(R.mipmap.default_image) .apply(RequestOptions.circleCropTransform()) .into(binding.userAvatarView) } else { diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt index ccc182b..73f42fe 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionControlActivity.kt @@ -128,6 +128,14 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("apk") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + progressDialog.progress = progress.toInt() + } + override fun onDownloadEnd(file: File) { progressDialog.dismiss() progressDialog.progress = 0 @@ -135,14 +143,9 @@ installApk(file) } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(throwable: Throwable) { } - - override fun onProgressChanged(progress: Int) { - progressDialog.progress = progress - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt index 8852a17..5ee1501 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/VersionHistoryActivity.kt @@ -54,16 +54,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - versionHistoryAdapter.setRefreshData(dataRows) + versionHistoryAdapter.refresh(dataRows) binding.versionHistoryLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - versionHistoryAdapter.setLoadMoreData(dataRows) + versionHistoryAdapter.loadMore(dataRows) binding.versionHistoryLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt index 493a6b5..8201ed9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ApprovalOperationActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.SaveKeyValues @@ -24,7 +24,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - taskId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + taskId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt index 8abc16b..d5e8283 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/BusinessStatisticsActivity.kt @@ -78,16 +78,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt index 5ae86b1..a88fa80 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt index 09f0b66..71f4bcb 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CapabilityDetailActivity.kt @@ -7,7 +7,7 @@ import com.casic.xz.meterage.databinding.ActivityCapabilityDetailBinding import com.casic.xz.meterage.extensions.initImmersionBar import com.casic.xz.meterage.vm.CapabilityViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -17,7 +17,7 @@ private lateinit var capabilityViewModel: CapabilityViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - val id = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val id = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] capabilityViewModel.getCapabilityDetail(this, id) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 5dbb5b8..0e6f4d8 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog @@ -26,7 +26,7 @@ private lateinit var certificateViewModel: CertificateViewModel override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! when (args[0]) { "草稿箱" -> { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt index 4fb0e55..0d84626 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.contract.CollectionFragment import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment import com.casic.xz.meterage.vm.ContractInvoiceViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val contractId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val contractId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] constructViewModel.getContractDetail(this, contractId) constructViewModel.contractDetail.observe(this) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt index e961b2e..a7d75b2 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt @@ -60,16 +60,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt index 0bd38fe..c549256 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt index 5584664..4e4a521 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CustomerDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.customer.PersonnelFragment import com.casic.xz.meterage.fragment.customer.SampleRecordFragment import com.casic.xz.meterage.vm.CustomerViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -25,7 +25,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val customerId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val customerId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] customerViewModel.getCustomerDetail(this, customerId) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt index 02d484b..778b8d7 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/DetectionSampleDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.BasicInformationFragment import com.casic.xz.meterage.fragment.InspectionRecordFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView @@ -40,7 +40,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - val args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + val args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! detectionViewModel = ViewModelProvider(this)[DetectionViewModel::class.java] detectionViewModel.getDetectionDetail(this, args[0], args[1]) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index 0a6237d..f7915e4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -40,16 +40,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt index 73ed99a..298dbb3 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt @@ -1,6 +1,5 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint @@ -8,8 +7,6 @@ import android.os.Handler import android.os.Message import android.view.KeyEvent -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -143,61 +140,54 @@ binding.createEntrustDateView.text = System.currentTimeMillis().timestampToDate() } - private val selectCustomerLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCustomerLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.entrustNameView.text = data.getStringExtra("entrustName") + binding.entrustContactView.text = data.getStringExtra("entrustContact") + binding.entrustAddressView.text = data.getStringExtra("entrustAddress") + } + } + } - binding.entrustNameView.text = data.getStringExtra("entrustName") - binding.entrustContactView.text = data.getStringExtra("entrustContact") - binding.entrustAddressView.text = data.getStringExtra("entrustAddress") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } - private val selectSampleLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectSampleLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val modelsJson = data.getStringExtra("sampleModels") + if (!modelsJson.isNullOrBlank()) { + sampleModels = gson.fromJson(modelsJson, typeToken) - val modelsJson = data.getStringExtra("sampleModels") - if (!modelsJson.isNullOrBlank()) { - sampleModels = gson.fromJson(modelsJson, typeToken) - - weakReferenceHandler.sendEmptyMessage(2023070701) - } - } + weakReferenceHandler.sendEmptyMessage(2023070701) } - }) + } + } + } override fun handleMessage(msg: Message): Boolean { when (msg.what) { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt index 2d88c94..21a3ed5 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt @@ -13,7 +13,7 @@ import com.casic.xz.meterage.fragment.entrust.LogRecordFragment import com.casic.xz.meterage.vm.EntrustViewModel import com.casic.xz.meterage.widgets.AlertReturnControlDialog -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -26,7 +26,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - entrustId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + entrustId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] //获取委托书基本信息 diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt index 36d3827..2e7dd27 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt @@ -45,16 +45,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } @@ -202,7 +202,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = equipmentAdapter equipmentAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt index fdb87a9..6fe4768 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentDetailActivity.kt @@ -10,7 +10,7 @@ import com.casic.xz.meterage.fragment.equipment.BasicInformationFragment import com.casic.xz.meterage.fragment.equipment.StateChangeLogFragment import com.casic.xz.meterage.fragment.equipment.UsageRecordFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class EquipmentDetailActivity : ApplicationBaseActivity() { @@ -18,7 +18,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val equipmentId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val equipmentId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(equipmentId)) // fragmentPages.add(WeeklyRecordFragment()) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt index b0a6741..ef6245a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt index 9cbe803..f47a690 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.fragment.train.StudentsFragment import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.UserViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView @@ -21,7 +21,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val trainId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val trainId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt index cf04885..c8288e0 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OutfieldDetectionDetailActivity.kt @@ -14,7 +14,7 @@ import com.casic.xz.meterage.fragment.outfield.TaskDeviceFragment import com.casic.xz.meterage.fragment.outfield.TaskExecutorFragment import com.casic.xz.meterage.vm.DetectionViewModel -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant class OutfieldDetectionDetailActivity : ApplicationBaseActivity() { @@ -35,7 +35,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM_KEY)!! + args = intent.getStringArrayListExtra(LiteKitConstant.INTENT_PARAM_KEY)!! //TODO 是否需要在APP操作审批,待定 binding.approvalView.visibility = View.GONE diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt index ba1a8d6..f47a497 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeDeviceActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.deviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.deviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt index ee98140..b4fba2b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/OvertimeEquipActivity.kt @@ -62,16 +62,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt index bac0549..87ad879 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectCustomerActivity.kt @@ -42,16 +42,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectCustomerAdapter.setRefreshData(dataRows) + selectCustomerAdapter.notifyItemRangeChanged(0, dataRows.size) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectCustomerAdapter.setLoadMoreData(dataRows) + selectCustomerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt index 57af271..009705c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/SelectSampleActivity.kt @@ -39,16 +39,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - selectSampleAdapter.setRefreshData(dataRows) + selectSampleAdapter.notifyItemRangeChanged(0, dataRows.size) binding.sampleLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - selectSampleAdapter.setLoadMoreData(dataRows) + selectSampleAdapter.loadMore(dataRows) binding.sampleLayout.finishLoadMore() isLoadMore = false } @@ -156,10 +156,8 @@ binding.recyclerView.adapter = selectSampleAdapter selectSampleAdapter.setOnItemCheckedListener(object : MultipleChoiceAdapter.OnItemCheckedListener { - override fun onItemChecked( - position: Int, items: ArrayList - ) { - sampleModels = items + override fun onItemChecked(items: List) { + sampleModels = items as ArrayList } }) } diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt index 1b59691..8ee7031 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt @@ -46,16 +46,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } @@ -182,7 +182,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = deviceAdapter deviceAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt index 5eb0d0f..75abd92 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceDetailActivity.kt @@ -11,7 +11,7 @@ import com.casic.xz.meterage.fragment.device.MeasurementStaffFragment import com.casic.xz.meterage.fragment.device.SupportEquipmentFragment import com.casic.xz.meterage.fragment.device.VerifyRegulationFragment -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardDeviceDetailActivity : @@ -20,7 +20,7 @@ private var fragmentPages: ArrayList = ArrayList() override fun initOnCreate(savedInstanceState: Bundle?) { - val deviceId = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val deviceId = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! fragmentPages.add(BasicInformationFragment(deviceId)) fragmentPages.add(MeasurementStaffFragment(deviceId)) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt index 1b1a836..5eef5fd 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt @@ -12,7 +12,7 @@ import com.casic.xz.meterage.model.StandardFileModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class StandardFileDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val fileDetail = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val fileDetail = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( fileDetail, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt index 910a8ba..d7fa963 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt @@ -1,12 +1,9 @@ package com.casic.xz.meterage.view.home -import android.app.Activity import android.content.Intent import android.graphics.Color import android.graphics.Paint import android.os.Bundle -import androidx.activity.result.ActivityResult -import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R @@ -61,43 +58,38 @@ } } - private val selectCountryLauncher = - registerForActivityResult( - ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return + private val selectCountryLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + binding.countryView.text = data.getStringExtra("countryName") + } + } + } - binding.countryView.text = data.getStringExtra("countryName") - } + private val selectFileLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { + if (it?.resultCode == RESULT_OK) { + it.data?.let { data -> + val uri = data.data + + val filePath = uri?.realFilePath(context) + if (filePath.isNullOrEmpty()) { + "文件路径错误,上传失败".show(context) + return@let } - }) - private val selectFileLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult(), - object : ActivityResultCallback { - override fun onActivityResult(result: ActivityResult?) { - if (result?.resultCode == Activity.RESULT_OK) { - val data = result.data ?: return - - val uri = data.data - - val filePath = uri?.realFilePath(context) - if (filePath.isNullOrEmpty()) { - "文件路径错误,上传失败".show(context) - return - } - - val file = File(filePath) - if (filePath.endsWith("pdf")) { - fileUploadViewModel.uploadFile(context, file, FileType.PDF) - } else { - fileUploadViewModel.uploadFile(context, file, FileType.WORD) - } - } + val file = File(filePath) + if (filePath.endsWith("pdf")) { + fileUploadViewModel.uploadFile(context, file, FileType.PDF) + } else { + fileUploadViewModel.uploadFile(context, file, FileType.WORD) } - }) + } + } + } override fun initEvent() { binding.countryView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt index b1703b4..274ffdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeDetailActivity.kt @@ -11,8 +11,8 @@ import com.casic.xz.meterage.model.NoticeListModel import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.HtmlRenderEngine +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.widget.TitleBarView class NoticeDetailActivity : ApplicationBaseActivity() { @@ -20,7 +20,7 @@ private val gson by lazy { Gson() } override fun initOnCreate(savedInstanceState: Bundle?) { - val noticeJson = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val noticeJson = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! val dataRow = gson.fromJson( noticeJson, object : TypeToken() {}.type ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 6466369..0062cdc 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -61,16 +61,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - noticeAdapter.setRefreshData(dataRows) + noticeAdapter.refresh(dataRows) binding.noticeLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - noticeAdapter.setLoadMoreData(dataRows) + noticeAdapter.loadMore(dataRows) binding.noticeLayout.finishLoadMore() isLoadMore = false } @@ -192,7 +192,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = noticeAdapter noticeAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt index 1848b5d..ea2e58b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewPdfActivity.kt @@ -7,8 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +17,7 @@ class PreviewPdfActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,20 +27,23 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("pdf") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() val inputStream = FileInputStream(file) binding.pdfView.fromStream(inputStream).load() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt index d0d5809..2f49c5c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewTextActivity.kt @@ -7,9 +7,8 @@ import com.casic.xz.meterage.extensions.combineFilePath import com.casic.xz.meterage.extensions.initImmersionBar import com.pengxh.kt.lite.extensions.createDownloadFileDir -import com.pengxh.kt.lite.extensions.read -import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.FileDownloadManager +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.widget.TitleBarView import java.io.File @@ -17,7 +16,7 @@ class PreviewTextActivity : ApplicationBaseActivity() { override fun initOnCreate(savedInstanceState: Bundle?) { - val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + val minioFileName = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! binding.titleView.setTitle(minioFileName) val url = minioFileName.combineFilePath() @@ -27,19 +26,22 @@ .setFileSaveDirectory(createDownloadFileDir()) .setFileSuffix("") .setOnFileDownloadListener(object : FileDownloadManager.OnFileDownloadListener { + override fun onDownloadStart(total: Long) { + + } + + override fun onProgressChanged(progress: Long) { + + } + override fun onDownloadEnd(file: File) { LoadingDialog.dismiss() - binding. textView.text = file.read() + binding.textView.text = file.readText() } - override fun onFailure(throwable: Throwable) { + override fun onDownloadFailed(t: Throwable) { } - - override fun onProgressChanged(progress: Int) { - - } - }).build().start() } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt index e16b9c9..e83d66e 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) capabilityViewModel = ViewModelProvider(this)[CapabilityViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.records!! when { isRefresh -> { - capabilityAdapter.setRefreshData(dataRows) + capabilityAdapter.refresh(dataRows) binding.capabilityLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - capabilityAdapter.setLoadMoreData(dataRows) + capabilityAdapter.loadMore(dataRows) binding.capabilityLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt index 6af1667..440ae83 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -63,7 +63,7 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java] @@ -72,16 +72,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - contractAdapter.setRefreshData(dataRows) + contractAdapter.refresh(dataRows) binding.contractLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - contractAdapter.setLoadMoreData(dataRows) + contractAdapter.loadMore(dataRows) binding.contractLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt index d4b8e5d..f7ce63b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCustomerResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) customerViewModel = ViewModelProvider(this)[CustomerViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - customerAdapter.setRefreshData(dataRows) + customerAdapter.refresh(dataRows) binding.customerLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - customerAdapter.setLoadMoreData(dataRows) + customerAdapter.loadMore(dataRows) binding.customerLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt index 9e0afe9..c89dc1b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -19,7 +19,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -39,7 +39,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] @@ -48,16 +48,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - entrustAdapter.setRefreshData(dataRows) + entrustAdapter.refresh(dataRows) binding.entrustLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - entrustAdapter.setLoadMoreData(dataRows) + entrustAdapter.loadMore(dataRows) binding.entrustLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt index 47819c3..e2b15a4 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - equipmentAdapter.setRefreshData(dataRows) + equipmentAdapter.refresh(dataRows) binding.equipmentLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - equipmentAdapter.setLoadMoreData(dataRows) + equipmentAdapter.loadMore(dataRows) binding.equipmentLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt index 0a9148d..ed8253c 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt @@ -18,7 +18,7 @@ import com.pengxh.kt.lite.divider.RecyclerViewItemDivider import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -38,7 +38,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java] @@ -47,16 +47,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - globalResultAdapter.setRefreshData(dataRows) + globalResultAdapter.refresh(dataRows) binding.searchGlobalLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - globalResultAdapter.setLoadMoreData(dataRows) + globalResultAdapter.loadMore(dataRows) binding.searchGlobalLayout.finishLoadMore() isLoadMore = false } @@ -162,7 +162,7 @@ } } binding.recyclerView.addItemDecoration( - RecyclerViewItemDivider(1, Color.LTGRAY) + RecyclerViewItemDivider(0f, 0f, Color.LTGRAY) ) binding.recyclerView.adapter = globalResultAdapter globalResultAdapter.setOnItemClickedListener(object : diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt index 8141585..74157ca 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt @@ -23,7 +23,7 @@ import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -43,7 +43,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) meterageTrainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java] @@ -52,16 +52,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - meterageTrainAdapter.setRefreshData(dataRows) + meterageTrainAdapter.refresh(dataRows) binding.trainLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - meterageTrainAdapter.setLoadMoreData(dataRows) + meterageTrainAdapter.loadMore(dataRows) binding.trainLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt index 93a9e54..004106b 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt @@ -20,7 +20,7 @@ import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.LiteKitConstant import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog import com.pengxh.kt.lite.utils.WeakReferenceHandler @@ -40,7 +40,7 @@ private var isLoadMore = false override fun initOnCreate(savedInstanceState: Bundle?) { - param = intent.getStringExtra(Constant.INTENT_PARAM_KEY)!! + param = intent.getStringExtra(LiteKitConstant.INTENT_PARAM_KEY)!! weakReferenceHandler = WeakReferenceHandler(this) equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java] @@ -49,16 +49,16 @@ val dataRows = it.data?.rows!! when { isRefresh -> { - deviceAdapter.setRefreshData(dataRows) + deviceAdapter.refresh(dataRows) binding.standardDeviceLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows.size == 0) { + if (dataRows.isEmpty()) { "到底了,别拉了".show(this) } - deviceAdapter.setLoadMoreData(dataRows) + deviceAdapter.loadMore(dataRows) binding.standardDeviceLayout.finishLoadMore() isLoadMore = false } diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt index 318046d..31e60c4 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/AlertReturnControlDialog.kt @@ -3,14 +3,11 @@ import android.app.Dialog import android.content.Context import android.os.Bundle -import com.casic.xz.meterage.R import com.casic.xz.meterage.databinding.DialogAlertReturnBinding import com.pengxh.kt.lite.extensions.binding import com.pengxh.kt.lite.extensions.initDialogLayoutParams -class AlertReturnControlDialog private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedDialogStyle -) { +class AlertReturnControlDialog private constructor(builder: Builder) : Dialog(builder.context) { private val title = builder.title private val message = builder.message private val positiveBtn = builder.positiveBtn @@ -63,7 +60,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) this.initDialogLayoutParams(0.8f) - setContentView(R.layout.dialog_alert_return) setCancelable(false) setCanceledOnTouchOutside(false) initView() diff --git a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt index 27ec48d..78919cb 100644 --- a/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt +++ b/app/src/main/java/com/casic/xz/meterage/widgets/ProcessBottomSheet.kt @@ -8,15 +8,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R +import com.casic.xz.meterage.databinding.SheetProcessBinding import com.casic.xz.meterage.model.ProcessListModel -import com.pengxh.kt.lite.extensions.resetParams +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.getScreenWidth class ProcessBottomSheet private constructor(builder: Builder) : Dialog( - builder.context, R.style.UserDefinedActionStyle + builder.context, R.style.BottomControlSheetStyle ) { private val ctx = builder.context @@ -41,15 +45,25 @@ } } + private val binding: SheetProcessBinding by binding() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - this.resetParams(Gravity.BOTTOM, R.style.ActionSheetDialogAnimation, 1f) - setContentView(R.layout.sheet_process) + val window = this.window ?: return + window.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.ActionSheetDialogAnimation) + val params = window.attributes + params.width = context.getScreenWidth() + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + setCancelable(true) setCanceledOnTouchOutside(true) - val logRecyclerView: RecyclerView = findViewById(R.id.logRecyclerView) - logRecyclerView.adapter = ProcessAdapter(ctx, process) + binding.recyclerView.adapter = ProcessAdapter(ctx, process) } inner class ProcessAdapter(context: Context, private val dataRows: List) : @@ -79,10 +93,12 @@ holder.topLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_red) } + dataRows.size - 1 -> { holder.bottomLineView.visibility = View.INVISIBLE holder.tagImageView.setImageResource(R.drawable.ic_dot_gray) } + else -> { holder.tagImageView.setImageResource(R.drawable.ic_dot) } diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index b0b948c..089dc15 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,41 +1,34 @@ - + android:background="@color/black"> - + android:layout_height="match_parent" /> - + - + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/lib_dp_10" + android:src="@drawable/ic_title_left" /> - - - - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index bea3e77..6dea7b3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/white"> + android:src="@mipmap/default_image" /> @@ -66,10 +67,10 @@ android:textColor="@color/white" /> - - - - + diff --git a/app/src/main/res/layout/item_big_picture.xml b/app/src/main/res/layout/item_big_picture.xml deleted file mode 100644 index d90eb44..0000000 --- a/app/src/main/res/layout/item_big_picture.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_notice_rv_l.xml b/app/src/main/res/layout/item_notice_rv_l.xml index e883258..b3ed54b 100644 --- a/app/src/main/res/layout/item_notice_rv_l.xml +++ b/app/src/main/res/layout/item_notice_rv_l.xml @@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="@dimen/dp_3" - android:src="@mipmap/default_avatar" /> + android:background="@color/mainBackground" /> #FF03DAC5 #FF018786 + #FFFF0000 + #FF0000FF #FF000000 #FFFFFFFF #FF808080 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6eb3da2..25e4dfa 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,9 +1,9 @@ - 华东计量 - 中国航天科工集团二院二〇三所 + 航天计量 + 航天计量检测技术(江苏)有限公司 暂时无法确定 - 中国航天科工集团二院二〇三所 版权所有 - Copyright © 2023 – 2050 Casic. All rights reserved. + 航天计量检测技术(江苏)有限公司 版权所有 + Copyright © 2023 – 2025 航天计量检测技术(江苏)有限公司. All rights reserved. 请输入问题描述,点击下方\"+\"号提交截图,帮助我们更快定位您的问题 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 2f88d49..5f5e033 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -156,4 +156,20 @@ true @dimen/dp_10 + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index a7779c0..a61723a 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,4 +1,4 @@ - + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index a7779c0..a61723a 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,4 +1,4 @@ - + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index a7779c0..a61723a 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,4 +1,4 @@ - + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index a7779c0..a61723a 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,4 +1,4 @@ - +