diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index bc9cb46..344a9af 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -4,6 +4,7 @@ import androidx.viewpager.widget.ViewPager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.ViewPagerAdapter +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment @@ -11,11 +12,8 @@ import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.BroadcastManager -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* @@ -33,8 +31,9 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { // 需要根据当前所在Page查询数据 diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index bc9cb46..344a9af 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -4,6 +4,7 @@ import androidx.viewpager.widget.ViewPager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.ViewPagerAdapter +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment @@ -11,11 +12,8 @@ import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.BroadcastManager -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* @@ -33,8 +31,9 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { // 需要根据当前所在Page查询数据 diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9153ea2..9ae3e27 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel import com.casic.br.operationsite.utils.GlideLoadEngine @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -58,8 +58,9 @@ override fun initLayoutView(): Int = R.layout.activity_upload_activity override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "事件信息" diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index bc9cb46..344a9af 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -4,6 +4,7 @@ import androidx.viewpager.widget.ViewPager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.ViewPagerAdapter +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment @@ -11,11 +12,8 @@ import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.BroadcastManager -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* @@ -33,8 +31,9 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { // 需要根据当前所在Page查询数据 diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9153ea2..9ae3e27 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel import com.casic.br.operationsite.utils.GlideLoadEngine @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -58,8 +58,9 @@ override fun initLayoutView(): Int = R.layout.activity_upload_activity override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "事件信息" diff --git a/app/src/main/res/drawable/construction.png b/app/src/main/res/drawable/construction.png deleted file mode 100644 index 6c44306..0000000 --- a/app/src/main/res/drawable/construction.png +++ /dev/null Binary files differ diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index bc9cb46..344a9af 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -4,6 +4,7 @@ import androidx.viewpager.widget.ViewPager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.ViewPagerAdapter +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment @@ -11,11 +12,8 @@ import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.BroadcastManager -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* @@ -33,8 +31,9 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { // 需要根据当前所在Page查询数据 diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9153ea2..9ae3e27 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel import com.casic.br.operationsite.utils.GlideLoadEngine @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -58,8 +58,9 @@ override fun initLayoutView(): Int = R.layout.activity_upload_activity override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "事件信息" diff --git a/app/src/main/res/drawable/construction.png b/app/src/main/res/drawable/construction.png deleted file mode 100644 index 6c44306..0000000 --- a/app/src/main/res/drawable/construction.png +++ /dev/null Binary files differ diff --git a/app/src/main/res/layout/activity_alarm_detail.xml b/app/src/main/res/layout/activity_alarm_detail.xml index e442aa7..8e09bf0 100644 --- a/app/src/main/res/layout/activity_alarm_detail.xml +++ b/app/src/main/res/layout/activity_alarm_detail.xml @@ -1,5 +1,6 @@ diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index bc9cb46..344a9af 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -4,6 +4,7 @@ import androidx.viewpager.widget.ViewPager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.ViewPagerAdapter +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment @@ -11,11 +12,8 @@ import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.BroadcastManager -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* @@ -33,8 +31,9 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { // 需要根据当前所在Page查询数据 diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9153ea2..9ae3e27 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel import com.casic.br.operationsite.utils.GlideLoadEngine @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -58,8 +58,9 @@ override fun initLayoutView(): Int = R.layout.activity_upload_activity override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "事件信息" diff --git a/app/src/main/res/drawable/construction.png b/app/src/main/res/drawable/construction.png deleted file mode 100644 index 6c44306..0000000 --- a/app/src/main/res/drawable/construction.png +++ /dev/null Binary files differ diff --git a/app/src/main/res/layout/activity_alarm_detail.xml b/app/src/main/res/layout/activity_alarm_detail.xml index e442aa7..8e09bf0 100644 --- a/app/src/main/res/layout/activity_alarm_detail.xml +++ b/app/src/main/res/layout/activity_alarm_detail.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_alarm_list.xml b/app/src/main/res/layout/activity_alarm_list.xml index ab1a3aa..13b47f2 100644 --- a/app/src/main/res/layout/activity_alarm_list.xml +++ b/app/src/main/res/layout/activity_alarm_list.xml @@ -1,6 +1,7 @@ variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index bc9cb46..344a9af 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -4,6 +4,7 @@ import androidx.viewpager.widget.ViewPager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.ViewPagerAdapter +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment @@ -11,11 +12,8 @@ import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.BroadcastManager -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* @@ -33,8 +31,9 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { // 需要根据当前所在Page查询数据 diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9153ea2..9ae3e27 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel import com.casic.br.operationsite.utils.GlideLoadEngine @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -58,8 +58,9 @@ override fun initLayoutView(): Int = R.layout.activity_upload_activity override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "事件信息" diff --git a/app/src/main/res/drawable/construction.png b/app/src/main/res/drawable/construction.png deleted file mode 100644 index 6c44306..0000000 --- a/app/src/main/res/drawable/construction.png +++ /dev/null Binary files differ diff --git a/app/src/main/res/layout/activity_alarm_detail.xml b/app/src/main/res/layout/activity_alarm_detail.xml index e442aa7..8e09bf0 100644 --- a/app/src/main/res/layout/activity_alarm_detail.xml +++ b/app/src/main/res/layout/activity_alarm_detail.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_alarm_list.xml b/app/src/main/res/layout/activity_alarm_list.xml index ab1a3aa..13b47f2 100644 --- a/app/src/main/res/layout/activity_alarm_list.xml +++ b/app/src/main/res/layout/activity_alarm_list.xml @@ -1,6 +1,7 @@ variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index bc9cb46..344a9af 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -4,6 +4,7 @@ import androidx.viewpager.widget.ViewPager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.ViewPagerAdapter +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment @@ -11,11 +12,8 @@ import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.BroadcastManager -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* @@ -33,8 +31,9 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { // 需要根据当前所在Page查询数据 diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9153ea2..9ae3e27 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel import com.casic.br.operationsite.utils.GlideLoadEngine @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -58,8 +58,9 @@ override fun initLayoutView(): Int = R.layout.activity_upload_activity override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "事件信息" diff --git a/app/src/main/res/drawable/construction.png b/app/src/main/res/drawable/construction.png deleted file mode 100644 index 6c44306..0000000 --- a/app/src/main/res/drawable/construction.png +++ /dev/null Binary files differ diff --git a/app/src/main/res/layout/activity_alarm_detail.xml b/app/src/main/res/layout/activity_alarm_detail.xml index e442aa7..8e09bf0 100644 --- a/app/src/main/res/layout/activity_alarm_detail.xml +++ b/app/src/main/res/layout/activity_alarm_detail.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_alarm_list.xml b/app/src/main/res/layout/activity_alarm_list.xml index ab1a3aa..13b47f2 100644 --- a/app/src/main/res/layout/activity_alarm_list.xml +++ b/app/src/main/res/layout/activity_alarm_list.xml @@ -1,6 +1,7 @@ variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index bc9cb46..344a9af 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -4,6 +4,7 @@ import androidx.viewpager.widget.ViewPager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.ViewPagerAdapter +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment @@ -11,11 +12,8 @@ import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.BroadcastManager -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* @@ -33,8 +31,9 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { // 需要根据当前所在Page查询数据 diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9153ea2..9ae3e27 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel import com.casic.br.operationsite.utils.GlideLoadEngine @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -58,8 +58,9 @@ override fun initLayoutView(): Int = R.layout.activity_upload_activity override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "事件信息" diff --git a/app/src/main/res/drawable/construction.png b/app/src/main/res/drawable/construction.png deleted file mode 100644 index 6c44306..0000000 --- a/app/src/main/res/drawable/construction.png +++ /dev/null Binary files differ diff --git a/app/src/main/res/layout/activity_alarm_detail.xml b/app/src/main/res/layout/activity_alarm_detail.xml index e442aa7..8e09bf0 100644 --- a/app/src/main/res/layout/activity_alarm_detail.xml +++ b/app/src/main/res/layout/activity_alarm_detail.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_alarm_list.xml b/app/src/main/res/layout/activity_alarm_list.xml index ab1a3aa..13b47f2 100644 --- a/app/src/main/res/layout/activity_alarm_list.xml +++ b/app/src/main/res/layout/activity_alarm_list.xml @@ -1,6 +1,7 @@ @@ -8,7 +9,6 @@ diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index bc9cb46..344a9af 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -4,6 +4,7 @@ import androidx.viewpager.widget.ViewPager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.ViewPagerAdapter +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment @@ -11,11 +12,8 @@ import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.BroadcastManager -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* @@ -33,8 +31,9 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { // 需要根据当前所在Page查询数据 diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9153ea2..9ae3e27 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel import com.casic.br.operationsite.utils.GlideLoadEngine @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -58,8 +58,9 @@ override fun initLayoutView(): Int = R.layout.activity_upload_activity override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "事件信息" diff --git a/app/src/main/res/drawable/construction.png b/app/src/main/res/drawable/construction.png deleted file mode 100644 index 6c44306..0000000 --- a/app/src/main/res/drawable/construction.png +++ /dev/null Binary files differ diff --git a/app/src/main/res/layout/activity_alarm_detail.xml b/app/src/main/res/layout/activity_alarm_detail.xml index e442aa7..8e09bf0 100644 --- a/app/src/main/res/layout/activity_alarm_detail.xml +++ b/app/src/main/res/layout/activity_alarm_detail.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_alarm_list.xml b/app/src/main/res/layout/activity_alarm_list.xml index ab1a3aa..13b47f2 100644 --- a/app/src/main/res/layout/activity_alarm_list.xml +++ b/app/src/main/res/layout/activity_alarm_list.xml @@ -1,6 +1,7 @@ @@ -8,7 +9,6 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index c7ac8fb..3d1877f 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/build.gradle b/app/build.gradle index 2fbcfbc..aad51e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ minSdkVersion 23 targetSdkVersion 31 versionCode 1 - versionName "1.0.0" + versionName "1.0.0.0" ndk { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64' @@ -54,7 +54,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index bc9cb46..344a9af 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -4,6 +4,7 @@ import androidx.viewpager.widget.ViewPager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.ViewPagerAdapter +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment @@ -11,11 +12,8 @@ import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.BroadcastManager -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* @@ -33,8 +31,9 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { // 需要根据当前所在Page查询数据 diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9153ea2..9ae3e27 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel import com.casic.br.operationsite.utils.GlideLoadEngine @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -58,8 +58,9 @@ override fun initLayoutView(): Int = R.layout.activity_upload_activity override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "事件信息" diff --git a/app/src/main/res/drawable/construction.png b/app/src/main/res/drawable/construction.png deleted file mode 100644 index 6c44306..0000000 --- a/app/src/main/res/drawable/construction.png +++ /dev/null Binary files differ diff --git a/app/src/main/res/layout/activity_alarm_detail.xml b/app/src/main/res/layout/activity_alarm_detail.xml index e442aa7..8e09bf0 100644 --- a/app/src/main/res/layout/activity_alarm_detail.xml +++ b/app/src/main/res/layout/activity_alarm_detail.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_alarm_list.xml b/app/src/main/res/layout/activity_alarm_list.xml index ab1a3aa..13b47f2 100644 --- a/app/src/main/res/layout/activity_alarm_list.xml +++ b/app/src/main/res/layout/activity_alarm_list.xml @@ -1,6 +1,7 @@ @@ -8,7 +9,6 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index c7ac8fb..3d1877f 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 18f7e37..5c8a239 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index bc9cb46..344a9af 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -4,6 +4,7 @@ import androidx.viewpager.widget.ViewPager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.ViewPagerAdapter +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment @@ -11,11 +12,8 @@ import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.BroadcastManager -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* @@ -33,8 +31,9 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { // 需要根据当前所在Page查询数据 diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9153ea2..9ae3e27 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel import com.casic.br.operationsite.utils.GlideLoadEngine @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -58,8 +58,9 @@ override fun initLayoutView(): Int = R.layout.activity_upload_activity override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "事件信息" diff --git a/app/src/main/res/drawable/construction.png b/app/src/main/res/drawable/construction.png deleted file mode 100644 index 6c44306..0000000 --- a/app/src/main/res/drawable/construction.png +++ /dev/null Binary files differ diff --git a/app/src/main/res/layout/activity_alarm_detail.xml b/app/src/main/res/layout/activity_alarm_detail.xml index e442aa7..8e09bf0 100644 --- a/app/src/main/res/layout/activity_alarm_detail.xml +++ b/app/src/main/res/layout/activity_alarm_detail.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_alarm_list.xml b/app/src/main/res/layout/activity_alarm_list.xml index ab1a3aa..13b47f2 100644 --- a/app/src/main/res/layout/activity_alarm_list.xml +++ b/app/src/main/res/layout/activity_alarm_list.xml @@ -1,6 +1,7 @@ @@ -8,7 +9,6 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index c7ac8fb..3d1877f 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 18f7e37..5c8a239 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ @@ -12,8 +13,8 @@ android:layout_height="match_parent" android:background="@color/mainBackColor" android:orientation="vertical" - android:paddingHorizontal="@dimen/dp_10" - android:paddingTop="@dimen/dp_10"> + android:paddingHorizontal="@dimen/dp_5" + android:paddingTop="@dimen/dp_5"> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index bc9cb46..344a9af 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -4,6 +4,7 @@ import androidx.viewpager.widget.ViewPager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.ViewPagerAdapter +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment @@ -11,11 +12,8 @@ import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.BroadcastManager -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* @@ -33,8 +31,9 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { // 需要根据当前所在Page查询数据 diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9153ea2..9ae3e27 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel import com.casic.br.operationsite.utils.GlideLoadEngine @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -58,8 +58,9 @@ override fun initLayoutView(): Int = R.layout.activity_upload_activity override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "事件信息" diff --git a/app/src/main/res/drawable/construction.png b/app/src/main/res/drawable/construction.png deleted file mode 100644 index 6c44306..0000000 --- a/app/src/main/res/drawable/construction.png +++ /dev/null Binary files differ diff --git a/app/src/main/res/layout/activity_alarm_detail.xml b/app/src/main/res/layout/activity_alarm_detail.xml index e442aa7..8e09bf0 100644 --- a/app/src/main/res/layout/activity_alarm_detail.xml +++ b/app/src/main/res/layout/activity_alarm_detail.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_alarm_list.xml b/app/src/main/res/layout/activity_alarm_list.xml index ab1a3aa..13b47f2 100644 --- a/app/src/main/res/layout/activity_alarm_list.xml +++ b/app/src/main/res/layout/activity_alarm_list.xml @@ -1,6 +1,7 @@ @@ -8,7 +9,6 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index c7ac8fb..3d1877f 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 18f7e37..5c8a239 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ @@ -12,8 +13,8 @@ android:layout_height="match_parent" android:background="@color/mainBackColor" android:orientation="vertical" - android:paddingHorizontal="@dimen/dp_10" - android:paddingTop="@dimen/dp_10"> + android:paddingHorizontal="@dimen/dp_5" + android:paddingTop="@dimen/dp_5"> variant.outputs.all { - outputFileName = "BR_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" + outputFileName = "XCGZ_" + getBuildDate() + "_" + defaultConfig.versionName + ".apk" } } } @@ -66,7 +66,7 @@ dependencies { //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4' + implementation 'com.github.AndroidCoderPeng:Kotlin-lite-lib:1.0.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd82ee0..4d59dca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -76,4 +76,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt new file mode 100644 index 0000000..31dbfa2 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/extensions/Context.kt @@ -0,0 +1,16 @@ +package com.casic.br.operationsite.extensions + +import android.content.Context +import android.view.ViewGroup +import com.casic.br.operationsite.base.BaseApplication +import com.pengxh.kt.lite.extensions.dp2px +import com.qmuiteam.qmui.util.QMUIDisplayHelper + +fun Context.initLayoutImmersionBar(rootView: ViewGroup) { + var statusBarHeight = QMUIDisplayHelper.getStatusBarHeight(this) + if (statusBarHeight == 0) { + statusBarHeight = 40f.dp2px(BaseApplication.get()) + } + rootView.setPadding(0, statusBarHeight, 0, 0) + rootView.requestLayout() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt index fde3336..baf7f26 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 2) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt index f7fd6d2..12f20e4 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt @@ -38,6 +38,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -57,9 +59,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 0) { pageIndex = 1 keywords = dataModel.keywords @@ -70,8 +70,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt index 569ead0..42e3203 100644 --- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt +++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt @@ -39,6 +39,8 @@ private lateinit var workingListAdapter: NormalRecyclerAdapter private lateinit var workSiteViewModel: WorkSiteViewModel private lateinit var broadcastManager: BroadcastManager + private val gson by lazy { Gson() } + private val typeToken = object : TypeToken() {}.type private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -58,9 +60,7 @@ broadcastManager.addAction(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { val stringExtra = intent?.getStringExtra(Constant.BROADCAST_INTENT_DATA_KEY) - val dataModel = Gson().fromJson( - stringExtra, object : TypeToken() {}.type - ) + val dataModel = gson.fromJson(stringExtra, typeToken) if (dataModel.currentPage == 1) { pageIndex = 1 keywords = dataModel.keywords @@ -71,8 +71,8 @@ } override fun onResume() { - obtainProjectListByPage() super.onResume() + obtainProjectListByPage() } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt index a6f4713..9a4d01b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmDetailActivity.kt @@ -14,16 +14,14 @@ import com.bumptech.glide.request.RequestOptions import com.casic.br.operationsite.R import com.casic.br.operationsite.extensions.combineImagePath +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.vm.AlarmViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_detail.* -import kotlinx.android.synthetic.main.activity_site_tab.mapView import kotlinx.android.synthetic.main.include_base_title.* class AlarmDetailActivity : KotlinBaseActivity() { @@ -35,8 +33,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_detail override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index a72dd86..d318c17 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.showEmptyPage import com.casic.br.operationsite.model.AlarmListModel import com.casic.br.operationsite.utils.LoadingDialogHub @@ -13,10 +14,8 @@ import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_alarm_list.* @@ -37,8 +36,9 @@ override fun initLayoutView(): Int = R.layout.activity_alarm_list override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { keywords = searchInputView.text.toString() diff --git a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt index 3dfc9a0..e7136e7 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ApplyEnterActivity.kt @@ -11,6 +11,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -24,7 +25,6 @@ import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.* -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.BottomActionSheet import kotlinx.android.synthetic.main.activity_apply_enter.* @@ -44,8 +44,9 @@ override fun initLayoutView(): Int = R.layout.activity_apply_enter override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "人员信息" diff --git a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt index 93dafb6..182763a 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/ElectricFenceActivity.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.view import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_base_title.* class ElectricFenceActivity : KotlinBaseActivity() { @@ -12,8 +12,9 @@ override fun initLayoutView(): Int = R.layout.activity_electric_fence override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "燃气作业现场动态感知" diff --git a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt index e74bb87..ec12038 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/FaceDetectActivity.kt @@ -16,15 +16,14 @@ import androidx.camera.lifecycle.ProcessCameraProvider import androidx.core.content.ContextCompat import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.google.common.util.concurrent.ListenableFuture import com.google.common.util.concurrent.ThreadFactoryBuilder import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.createImageFileDir import com.pengxh.kt.lite.extensions.setScreenBrightness import com.pengxh.kt.lite.extensions.toBitmap -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.WeakReferenceHandler import kotlinx.android.synthetic.main.activity_face_detect.* import kotlinx.android.synthetic.main.include_base_title.* @@ -57,8 +56,9 @@ override fun initLayoutView(): Int = R.layout.activity_face_detect override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "入场申请人脸采集" diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 64f69ca..fb9f7d3 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -2,6 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.operationsite.R +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LoadingDialogHub import com.casic.br.operationsite.utils.LocaleConstant @@ -11,10 +12,8 @@ import com.casic.br.operationsite.vm.UserDetailViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -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.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_login.* @@ -29,7 +28,7 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() - ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + initLayoutImmersionBar(rootView) } override fun initData() { @@ -77,8 +76,9 @@ val account = userNameView.text.toString() val userPassword = userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultModel.observe(this) { loginResult -> diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index bc9cb46..344a9af 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -4,6 +4,7 @@ import androidx.viewpager.widget.ViewPager import com.casic.br.operationsite.R import com.casic.br.operationsite.adapter.ViewPagerAdapter +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.fragment.CompletedFragment import com.casic.br.operationsite.fragment.NotStartFragment import com.casic.br.operationsite.fragment.WorkingFragment @@ -11,11 +12,8 @@ import com.casic.br.operationsite.utils.LocaleConstant import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.BroadcastManager -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.include_search_title.* @@ -33,8 +31,9 @@ override fun initLayoutView(): Int = R.layout.activity_main override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) searchTextView.setOnClickListener { // 需要根据当前所在Page查询数据 diff --git a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt index 9153ea2..9ae3e27 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/UploadEventActivity.kt @@ -13,6 +13,7 @@ import com.casic.br.operationsite.callback.OnImageCompressListener import com.casic.br.operationsite.extensions.combineImagePath import com.casic.br.operationsite.extensions.compressImage +import com.casic.br.operationsite.extensions.initLayoutImmersionBar import com.casic.br.operationsite.extensions.reformat import com.casic.br.operationsite.model.UserDetailModel import com.casic.br.operationsite.utils.GlideLoadEngine @@ -34,7 +35,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToCompleteDate -import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -58,8 +58,9 @@ override fun initLayoutView(): Int = R.layout.activity_upload_activity override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(false) + .statusBarColor(R.color.mainThemeColor).init() + initLayoutImmersionBar(rootView) leftBackView.setOnClickListener { finish() } titleView.text = "事件信息" diff --git a/app/src/main/res/drawable/construction.png b/app/src/main/res/drawable/construction.png deleted file mode 100644 index 6c44306..0000000 --- a/app/src/main/res/drawable/construction.png +++ /dev/null Binary files differ diff --git a/app/src/main/res/layout/activity_alarm_detail.xml b/app/src/main/res/layout/activity_alarm_detail.xml index e442aa7..8e09bf0 100644 --- a/app/src/main/res/layout/activity_alarm_detail.xml +++ b/app/src/main/res/layout/activity_alarm_detail.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_alarm_list.xml b/app/src/main/res/layout/activity_alarm_list.xml index ab1a3aa..13b47f2 100644 --- a/app/src/main/res/layout/activity_alarm_list.xml +++ b/app/src/main/res/layout/activity_alarm_list.xml @@ -1,6 +1,7 @@ @@ -8,7 +9,6 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index c7ac8fb..3d1877f 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 18f7e37..5c8a239 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ @@ -12,8 +13,8 @@ android:layout_height="match_parent" android:background="@color/mainBackColor" android:orientation="vertical" - android:paddingHorizontal="@dimen/dp_10" - android:paddingTop="@dimen/dp_10"> + android:paddingHorizontal="@dimen/dp_5" + android:paddingTop="@dimen/dp_5">