diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 40b71c3..1dc6fb1 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -104,7 +104,10 @@ */ @Multipart @POST("/file/uploadFile") - suspend fun uploadImage(@Part file: MultipartBody.Part): String + suspend fun uploadImage( + @Header("token") token: String, + @Part file: MultipartBody.Part + ): String /** * 添加设备 diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 40b71c3..1dc6fb1 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -104,7 +104,10 @@ */ @Multipart @POST("/file/uploadFile") - suspend fun uploadImage(@Part file: MultipartBody.Part): String + suspend fun uploadImage( + @Header("token") token: String, + @Part file: MultipartBody.Part + ): String /** * 添加设备 diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 4baebdb..9a0d747 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -196,9 +196,10 @@ /** * Banner */ - suspend fun obtainBanner(bannerName: String): String { + suspend fun obtainBanner(bannerName: String, bannerModule: String): String { val paramObject = JSONObject() paramObject.put("bannerName", bannerName) + paramObject.put("bannerModule", bannerModule) val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -217,7 +218,7 @@ suspend fun uploadImage(image: File): String { val requestBody = image.asRequestBody("image/jpeg".toMediaTypeOrNull()) val imagePart = MultipartBody.Part.createFormData("file", image.name, requestBody) - return api.uploadImage(imagePart) + return api.uploadImage(AuthenticationHelper.token!!,imagePart) } /** diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 40b71c3..1dc6fb1 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -104,7 +104,10 @@ */ @Multipart @POST("/file/uploadFile") - suspend fun uploadImage(@Part file: MultipartBody.Part): String + suspend fun uploadImage( + @Header("token") token: String, + @Part file: MultipartBody.Part + ): String /** * 添加设备 diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 4baebdb..9a0d747 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -196,9 +196,10 @@ /** * Banner */ - suspend fun obtainBanner(bannerName: String): String { + suspend fun obtainBanner(bannerName: String, bannerModule: String): String { val paramObject = JSONObject() paramObject.put("bannerName", bannerName) + paramObject.put("bannerModule", bannerModule) val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -217,7 +218,7 @@ suspend fun uploadImage(image: File): String { val requestBody = image.asRequestBody("image/jpeg".toMediaTypeOrNull()) val imagePart = MultipartBody.Part.createFormData("file", image.name, requestBody) - return api.uploadImage(imagePart) + return api.uploadImage(AuthenticationHelper.token!!,imagePart) } /** diff --git a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt index 210a258..8f652b2 100644 --- a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt @@ -35,7 +35,7 @@ } notIotDevice.setOnClickListener { - navigatePageTo() + navigatePageTo() } } } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 40b71c3..1dc6fb1 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -104,7 +104,10 @@ */ @Multipart @POST("/file/uploadFile") - suspend fun uploadImage(@Part file: MultipartBody.Part): String + suspend fun uploadImage( + @Header("token") token: String, + @Part file: MultipartBody.Part + ): String /** * 添加设备 diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 4baebdb..9a0d747 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -196,9 +196,10 @@ /** * Banner */ - suspend fun obtainBanner(bannerName: String): String { + suspend fun obtainBanner(bannerName: String, bannerModule: String): String { val paramObject = JSONObject() paramObject.put("bannerName", bannerName) + paramObject.put("bannerModule", bannerModule) val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -217,7 +218,7 @@ suspend fun uploadImage(image: File): String { val requestBody = image.asRequestBody("image/jpeg".toMediaTypeOrNull()) val imagePart = MultipartBody.Part.createFormData("file", image.name, requestBody) - return api.uploadImage(imagePart) + return api.uploadImage(AuthenticationHelper.token!!,imagePart) } /** diff --git a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt index 210a258..8f652b2 100644 --- a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt @@ -35,7 +35,7 @@ } notIotDevice.setOnClickListener { - navigatePageTo() + navigatePageTo() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt deleted file mode 100644 index 2239c9d..0000000 --- a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.br.view - -import android.view.MenuItem -import androidx.fragment.app.Fragment -import androidx.viewpager.widget.ViewPager -import com.casic.br.R -import com.casic.br.adapter.ViewPagerAdapter -import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.fragment.add.DeviceTypeFragment -import com.casic.br.fragment.add.NearbyDeviceFragment -import com.casic.br.fragment.add.ScanDeviceFragment -import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.base.KotlinBaseActivity -import kotlinx.android.synthetic.main.activity_add_device_tab.* -import kotlinx.android.synthetic.main.include_left_back_title.* - -/** - * 添加非IoT设备 - * */ -class AddDeviceTabActivity : KotlinBaseActivity() { - - private var menuItem: MenuItem? = null - private var fragmentPages: ArrayList = ArrayList() - - init { - fragmentPages.add(ScanDeviceFragment()) - fragmentPages.add(DeviceTypeFragment()) - fragmentPages.add(NearbyDeviceFragment()) - } - - override fun initLayoutView(): Int = R.layout.activity_add_device_tab - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) - leftBackView.setOnClickListener { finish() } - titleView.text = "扫码添加设备" - } - - override fun initData() { - - } - - override fun initEvent() { - bottomNavigation.setOnItemSelectedListener { menuItem -> - when (menuItem.itemId) { - R.id.nav_scan -> { - addDeviceViewPager.currentItem = 0 - titleView.text = "扫码添加设备" - } - R.id.nav_type -> { - addDeviceViewPager.currentItem = 1 - titleView.text = "按型号添加设备" - } - R.id.nav_nearby -> { - addDeviceViewPager.currentItem = 2 - titleView.text = "附近设备" - } - } - false - } - addDeviceViewPager.adapter = ViewPagerAdapter(fragmentPages, supportFragmentManager) - addDeviceViewPager.offscreenPageLimit = fragmentPages.size //缓存页数 - addDeviceViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrollStateChanged(state: Int) { - - } - - override fun onPageScrolled( - position: Int, - positionOffset: Float, - positionOffsetPixels: Int - ) { - - } - - override fun onPageSelected(position: Int) { - if (menuItem != null) { - menuItem!!.isChecked = false - } else { - bottomNavigation.menu.getItem(0).isChecked = false - } - menuItem = bottomNavigation.menu.getItem(position) - menuItem!!.isChecked = true - } - }) - } -} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 40b71c3..1dc6fb1 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -104,7 +104,10 @@ */ @Multipart @POST("/file/uploadFile") - suspend fun uploadImage(@Part file: MultipartBody.Part): String + suspend fun uploadImage( + @Header("token") token: String, + @Part file: MultipartBody.Part + ): String /** * 添加设备 diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 4baebdb..9a0d747 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -196,9 +196,10 @@ /** * Banner */ - suspend fun obtainBanner(bannerName: String): String { + suspend fun obtainBanner(bannerName: String, bannerModule: String): String { val paramObject = JSONObject() paramObject.put("bannerName", bannerName) + paramObject.put("bannerModule", bannerModule) val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -217,7 +218,7 @@ suspend fun uploadImage(image: File): String { val requestBody = image.asRequestBody("image/jpeg".toMediaTypeOrNull()) val imagePart = MultipartBody.Part.createFormData("file", image.name, requestBody) - return api.uploadImage(imagePart) + return api.uploadImage(AuthenticationHelper.token!!,imagePart) } /** diff --git a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt index 210a258..8f652b2 100644 --- a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt @@ -35,7 +35,7 @@ } notIotDevice.setOnClickListener { - navigatePageTo() + navigatePageTo() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt deleted file mode 100644 index 2239c9d..0000000 --- a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.br.view - -import android.view.MenuItem -import androidx.fragment.app.Fragment -import androidx.viewpager.widget.ViewPager -import com.casic.br.R -import com.casic.br.adapter.ViewPagerAdapter -import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.fragment.add.DeviceTypeFragment -import com.casic.br.fragment.add.NearbyDeviceFragment -import com.casic.br.fragment.add.ScanDeviceFragment -import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.base.KotlinBaseActivity -import kotlinx.android.synthetic.main.activity_add_device_tab.* -import kotlinx.android.synthetic.main.include_left_back_title.* - -/** - * 添加非IoT设备 - * */ -class AddDeviceTabActivity : KotlinBaseActivity() { - - private var menuItem: MenuItem? = null - private var fragmentPages: ArrayList = ArrayList() - - init { - fragmentPages.add(ScanDeviceFragment()) - fragmentPages.add(DeviceTypeFragment()) - fragmentPages.add(NearbyDeviceFragment()) - } - - override fun initLayoutView(): Int = R.layout.activity_add_device_tab - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) - leftBackView.setOnClickListener { finish() } - titleView.text = "扫码添加设备" - } - - override fun initData() { - - } - - override fun initEvent() { - bottomNavigation.setOnItemSelectedListener { menuItem -> - when (menuItem.itemId) { - R.id.nav_scan -> { - addDeviceViewPager.currentItem = 0 - titleView.text = "扫码添加设备" - } - R.id.nav_type -> { - addDeviceViewPager.currentItem = 1 - titleView.text = "按型号添加设备" - } - R.id.nav_nearby -> { - addDeviceViewPager.currentItem = 2 - titleView.text = "附近设备" - } - } - false - } - addDeviceViewPager.adapter = ViewPagerAdapter(fragmentPages, supportFragmentManager) - addDeviceViewPager.offscreenPageLimit = fragmentPages.size //缓存页数 - addDeviceViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrollStateChanged(state: Int) { - - } - - override fun onPageScrolled( - position: Int, - positionOffset: Float, - positionOffsetPixels: Int - ) { - - } - - override fun onPageSelected(position: Int) { - if (menuItem != null) { - menuItem!!.isChecked = false - } else { - bottomNavigation.menu.getItem(0).isChecked = false - } - menuItem = bottomNavigation.menu.getItem(position) - menuItem!!.isChecked = true - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt new file mode 100644 index 0000000..f89d526 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt @@ -0,0 +1,47 @@ +package com.casic.br.view + +import android.util.Log +import com.casic.br.R +import com.casic.br.adapter.DeviceTypeAdapter +import com.casic.br.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import kotlinx.android.synthetic.main.activity_add_no_iot_device.* +import kotlinx.android.synthetic.main.include_left_back_title.* + +/** + * 添加非IoT设备 + * */ +class AddNoIotDeviceActivity : KotlinBaseActivity() { + + private val kTag = "DeviceTypeFragment" + private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") + + override fun initLayoutView(): Int = R.layout.activity_add_no_iot_device + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + leftBackView.setOnClickListener { finish() } + titleView.text = String.format("添加非Iot设备") + } + + override fun initData() { + + } + + override fun initEvent() { + val deviceTypeAdapter = DeviceTypeAdapter(this, deviceTypes) + deviceTypeRecyclerView.adapter = deviceTypeAdapter + deviceTypeAdapter.setOnTypeItemClickListener(object : + DeviceTypeAdapter.OnTypeItemClickListener { + override fun onItemClick(position: Int) { + Log.d(kTag, "onItemClick: ${deviceTypes[position]}") + } + }) + } +} \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 40b71c3..1dc6fb1 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -104,7 +104,10 @@ */ @Multipart @POST("/file/uploadFile") - suspend fun uploadImage(@Part file: MultipartBody.Part): String + suspend fun uploadImage( + @Header("token") token: String, + @Part file: MultipartBody.Part + ): String /** * 添加设备 diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 4baebdb..9a0d747 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -196,9 +196,10 @@ /** * Banner */ - suspend fun obtainBanner(bannerName: String): String { + suspend fun obtainBanner(bannerName: String, bannerModule: String): String { val paramObject = JSONObject() paramObject.put("bannerName", bannerName) + paramObject.put("bannerModule", bannerModule) val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -217,7 +218,7 @@ suspend fun uploadImage(image: File): String { val requestBody = image.asRequestBody("image/jpeg".toMediaTypeOrNull()) val imagePart = MultipartBody.Part.createFormData("file", image.name, requestBody) - return api.uploadImage(imagePart) + return api.uploadImage(AuthenticationHelper.token!!,imagePart) } /** diff --git a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt index 210a258..8f652b2 100644 --- a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt @@ -35,7 +35,7 @@ } notIotDevice.setOnClickListener { - navigatePageTo() + navigatePageTo() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt deleted file mode 100644 index 2239c9d..0000000 --- a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.br.view - -import android.view.MenuItem -import androidx.fragment.app.Fragment -import androidx.viewpager.widget.ViewPager -import com.casic.br.R -import com.casic.br.adapter.ViewPagerAdapter -import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.fragment.add.DeviceTypeFragment -import com.casic.br.fragment.add.NearbyDeviceFragment -import com.casic.br.fragment.add.ScanDeviceFragment -import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.base.KotlinBaseActivity -import kotlinx.android.synthetic.main.activity_add_device_tab.* -import kotlinx.android.synthetic.main.include_left_back_title.* - -/** - * 添加非IoT设备 - * */ -class AddDeviceTabActivity : KotlinBaseActivity() { - - private var menuItem: MenuItem? = null - private var fragmentPages: ArrayList = ArrayList() - - init { - fragmentPages.add(ScanDeviceFragment()) - fragmentPages.add(DeviceTypeFragment()) - fragmentPages.add(NearbyDeviceFragment()) - } - - override fun initLayoutView(): Int = R.layout.activity_add_device_tab - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) - leftBackView.setOnClickListener { finish() } - titleView.text = "扫码添加设备" - } - - override fun initData() { - - } - - override fun initEvent() { - bottomNavigation.setOnItemSelectedListener { menuItem -> - when (menuItem.itemId) { - R.id.nav_scan -> { - addDeviceViewPager.currentItem = 0 - titleView.text = "扫码添加设备" - } - R.id.nav_type -> { - addDeviceViewPager.currentItem = 1 - titleView.text = "按型号添加设备" - } - R.id.nav_nearby -> { - addDeviceViewPager.currentItem = 2 - titleView.text = "附近设备" - } - } - false - } - addDeviceViewPager.adapter = ViewPagerAdapter(fragmentPages, supportFragmentManager) - addDeviceViewPager.offscreenPageLimit = fragmentPages.size //缓存页数 - addDeviceViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrollStateChanged(state: Int) { - - } - - override fun onPageScrolled( - position: Int, - positionOffset: Float, - positionOffsetPixels: Int - ) { - - } - - override fun onPageSelected(position: Int) { - if (menuItem != null) { - menuItem!!.isChecked = false - } else { - bottomNavigation.menu.getItem(0).isChecked = false - } - menuItem = bottomNavigation.menu.getItem(position) - menuItem!!.isChecked = true - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt new file mode 100644 index 0000000..f89d526 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt @@ -0,0 +1,47 @@ +package com.casic.br.view + +import android.util.Log +import com.casic.br.R +import com.casic.br.adapter.DeviceTypeAdapter +import com.casic.br.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import kotlinx.android.synthetic.main.activity_add_no_iot_device.* +import kotlinx.android.synthetic.main.include_left_back_title.* + +/** + * 添加非IoT设备 + * */ +class AddNoIotDeviceActivity : KotlinBaseActivity() { + + private val kTag = "DeviceTypeFragment" + private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") + + override fun initLayoutView(): Int = R.layout.activity_add_no_iot_device + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + leftBackView.setOnClickListener { finish() } + titleView.text = String.format("添加非Iot设备") + } + + override fun initData() { + + } + + override fun initEvent() { + val deviceTypeAdapter = DeviceTypeAdapter(this, deviceTypes) + deviceTypeRecyclerView.adapter = deviceTypeAdapter + deviceTypeAdapter.setOnTypeItemClickListener(object : + DeviceTypeAdapter.OnTypeItemClickListener { + override fun onItemClick(position: Int) { + Log.d(kTag, "onItemClick: ${deviceTypes[position]}") + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/EditUserActivity.kt b/app/src/main/java/com/casic/br/view/EditUserActivity.kt index a64fdde..8beba94 100644 --- a/app/src/main/java/com/casic/br/view/EditUserActivity.kt +++ b/app/src/main/java/com/casic/br/view/EditUserActivity.kt @@ -73,7 +73,11 @@ } userNameView.text = currentUser.name userPhoneView.text = currentUser.phone - genderView.text = LocaleConstant.GENDER_ARRAY[currentUser.sex - 1] + if (currentUser.sex.isBlank()) { + genderView.text = resources.getString(R.string.unknown) + } else { + genderView.text = LocaleConstant.GENDER_ARRAY[(currentUser.sex).toInt() - 1] + } birthdayView.text = currentUser.birthday calculateCompleteValue() } @@ -209,7 +213,7 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //更新性别 - currentUser.sex = position + 1 + currentUser.sex = (position + 1).toString() userViewModel.updateUserInfo(currentUser) genderView.text = LocaleConstant.GENDER_ARRAY[position] calculateCompleteValue() diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 40b71c3..1dc6fb1 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -104,7 +104,10 @@ */ @Multipart @POST("/file/uploadFile") - suspend fun uploadImage(@Part file: MultipartBody.Part): String + suspend fun uploadImage( + @Header("token") token: String, + @Part file: MultipartBody.Part + ): String /** * 添加设备 diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 4baebdb..9a0d747 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -196,9 +196,10 @@ /** * Banner */ - suspend fun obtainBanner(bannerName: String): String { + suspend fun obtainBanner(bannerName: String, bannerModule: String): String { val paramObject = JSONObject() paramObject.put("bannerName", bannerName) + paramObject.put("bannerModule", bannerModule) val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -217,7 +218,7 @@ suspend fun uploadImage(image: File): String { val requestBody = image.asRequestBody("image/jpeg".toMediaTypeOrNull()) val imagePart = MultipartBody.Part.createFormData("file", image.name, requestBody) - return api.uploadImage(imagePart) + return api.uploadImage(AuthenticationHelper.token!!,imagePart) } /** diff --git a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt index 210a258..8f652b2 100644 --- a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt @@ -35,7 +35,7 @@ } notIotDevice.setOnClickListener { - navigatePageTo() + navigatePageTo() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt deleted file mode 100644 index 2239c9d..0000000 --- a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.br.view - -import android.view.MenuItem -import androidx.fragment.app.Fragment -import androidx.viewpager.widget.ViewPager -import com.casic.br.R -import com.casic.br.adapter.ViewPagerAdapter -import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.fragment.add.DeviceTypeFragment -import com.casic.br.fragment.add.NearbyDeviceFragment -import com.casic.br.fragment.add.ScanDeviceFragment -import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.base.KotlinBaseActivity -import kotlinx.android.synthetic.main.activity_add_device_tab.* -import kotlinx.android.synthetic.main.include_left_back_title.* - -/** - * 添加非IoT设备 - * */ -class AddDeviceTabActivity : KotlinBaseActivity() { - - private var menuItem: MenuItem? = null - private var fragmentPages: ArrayList = ArrayList() - - init { - fragmentPages.add(ScanDeviceFragment()) - fragmentPages.add(DeviceTypeFragment()) - fragmentPages.add(NearbyDeviceFragment()) - } - - override fun initLayoutView(): Int = R.layout.activity_add_device_tab - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) - leftBackView.setOnClickListener { finish() } - titleView.text = "扫码添加设备" - } - - override fun initData() { - - } - - override fun initEvent() { - bottomNavigation.setOnItemSelectedListener { menuItem -> - when (menuItem.itemId) { - R.id.nav_scan -> { - addDeviceViewPager.currentItem = 0 - titleView.text = "扫码添加设备" - } - R.id.nav_type -> { - addDeviceViewPager.currentItem = 1 - titleView.text = "按型号添加设备" - } - R.id.nav_nearby -> { - addDeviceViewPager.currentItem = 2 - titleView.text = "附近设备" - } - } - false - } - addDeviceViewPager.adapter = ViewPagerAdapter(fragmentPages, supportFragmentManager) - addDeviceViewPager.offscreenPageLimit = fragmentPages.size //缓存页数 - addDeviceViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrollStateChanged(state: Int) { - - } - - override fun onPageScrolled( - position: Int, - positionOffset: Float, - positionOffsetPixels: Int - ) { - - } - - override fun onPageSelected(position: Int) { - if (menuItem != null) { - menuItem!!.isChecked = false - } else { - bottomNavigation.menu.getItem(0).isChecked = false - } - menuItem = bottomNavigation.menu.getItem(position) - menuItem!!.isChecked = true - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt new file mode 100644 index 0000000..f89d526 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt @@ -0,0 +1,47 @@ +package com.casic.br.view + +import android.util.Log +import com.casic.br.R +import com.casic.br.adapter.DeviceTypeAdapter +import com.casic.br.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import kotlinx.android.synthetic.main.activity_add_no_iot_device.* +import kotlinx.android.synthetic.main.include_left_back_title.* + +/** + * 添加非IoT设备 + * */ +class AddNoIotDeviceActivity : KotlinBaseActivity() { + + private val kTag = "DeviceTypeFragment" + private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") + + override fun initLayoutView(): Int = R.layout.activity_add_no_iot_device + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + leftBackView.setOnClickListener { finish() } + titleView.text = String.format("添加非Iot设备") + } + + override fun initData() { + + } + + override fun initEvent() { + val deviceTypeAdapter = DeviceTypeAdapter(this, deviceTypes) + deviceTypeRecyclerView.adapter = deviceTypeAdapter + deviceTypeAdapter.setOnTypeItemClickListener(object : + DeviceTypeAdapter.OnTypeItemClickListener { + override fun onItemClick(position: Int) { + Log.d(kTag, "onItemClick: ${deviceTypes[position]}") + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/EditUserActivity.kt b/app/src/main/java/com/casic/br/view/EditUserActivity.kt index a64fdde..8beba94 100644 --- a/app/src/main/java/com/casic/br/view/EditUserActivity.kt +++ b/app/src/main/java/com/casic/br/view/EditUserActivity.kt @@ -73,7 +73,11 @@ } userNameView.text = currentUser.name userPhoneView.text = currentUser.phone - genderView.text = LocaleConstant.GENDER_ARRAY[currentUser.sex - 1] + if (currentUser.sex.isBlank()) { + genderView.text = resources.getString(R.string.unknown) + } else { + genderView.text = LocaleConstant.GENDER_ARRAY[(currentUser.sex).toInt() - 1] + } birthdayView.text = currentUser.birthday calculateCompleteValue() } @@ -209,7 +213,7 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //更新性别 - currentUser.sex = position + 1 + currentUser.sex = (position + 1).toString() userViewModel.updateUserInfo(currentUser) genderView.text = LocaleConstant.GENDER_ARRAY[position] calculateCompleteValue() diff --git a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt index 1d3f0ca..bf6f887 100644 --- a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt +++ b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt @@ -17,8 +17,8 @@ private val gson by lazy { Gson() } val listModel = MutableLiveData() - fun obtainBanner(bannerName: String) = launch({ - val response = RetrofitServiceManager.obtainBanner(bannerName) + fun obtainBanner(bannerName: String, bannerModule: String) = launch({ + val response = RetrofitServiceManager.obtainBanner(bannerName, bannerModule) val responseCode = response.separateResponseCode() if (responseCode == 200) { listModel.value = gson.fromJson( diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 40b71c3..1dc6fb1 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -104,7 +104,10 @@ */ @Multipart @POST("/file/uploadFile") - suspend fun uploadImage(@Part file: MultipartBody.Part): String + suspend fun uploadImage( + @Header("token") token: String, + @Part file: MultipartBody.Part + ): String /** * 添加设备 diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 4baebdb..9a0d747 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -196,9 +196,10 @@ /** * Banner */ - suspend fun obtainBanner(bannerName: String): String { + suspend fun obtainBanner(bannerName: String, bannerModule: String): String { val paramObject = JSONObject() paramObject.put("bannerName", bannerName) + paramObject.put("bannerModule", bannerModule) val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -217,7 +218,7 @@ suspend fun uploadImage(image: File): String { val requestBody = image.asRequestBody("image/jpeg".toMediaTypeOrNull()) val imagePart = MultipartBody.Part.createFormData("file", image.name, requestBody) - return api.uploadImage(imagePart) + return api.uploadImage(AuthenticationHelper.token!!,imagePart) } /** diff --git a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt index 210a258..8f652b2 100644 --- a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt @@ -35,7 +35,7 @@ } notIotDevice.setOnClickListener { - navigatePageTo() + navigatePageTo() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt deleted file mode 100644 index 2239c9d..0000000 --- a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.br.view - -import android.view.MenuItem -import androidx.fragment.app.Fragment -import androidx.viewpager.widget.ViewPager -import com.casic.br.R -import com.casic.br.adapter.ViewPagerAdapter -import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.fragment.add.DeviceTypeFragment -import com.casic.br.fragment.add.NearbyDeviceFragment -import com.casic.br.fragment.add.ScanDeviceFragment -import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.base.KotlinBaseActivity -import kotlinx.android.synthetic.main.activity_add_device_tab.* -import kotlinx.android.synthetic.main.include_left_back_title.* - -/** - * 添加非IoT设备 - * */ -class AddDeviceTabActivity : KotlinBaseActivity() { - - private var menuItem: MenuItem? = null - private var fragmentPages: ArrayList = ArrayList() - - init { - fragmentPages.add(ScanDeviceFragment()) - fragmentPages.add(DeviceTypeFragment()) - fragmentPages.add(NearbyDeviceFragment()) - } - - override fun initLayoutView(): Int = R.layout.activity_add_device_tab - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) - leftBackView.setOnClickListener { finish() } - titleView.text = "扫码添加设备" - } - - override fun initData() { - - } - - override fun initEvent() { - bottomNavigation.setOnItemSelectedListener { menuItem -> - when (menuItem.itemId) { - R.id.nav_scan -> { - addDeviceViewPager.currentItem = 0 - titleView.text = "扫码添加设备" - } - R.id.nav_type -> { - addDeviceViewPager.currentItem = 1 - titleView.text = "按型号添加设备" - } - R.id.nav_nearby -> { - addDeviceViewPager.currentItem = 2 - titleView.text = "附近设备" - } - } - false - } - addDeviceViewPager.adapter = ViewPagerAdapter(fragmentPages, supportFragmentManager) - addDeviceViewPager.offscreenPageLimit = fragmentPages.size //缓存页数 - addDeviceViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrollStateChanged(state: Int) { - - } - - override fun onPageScrolled( - position: Int, - positionOffset: Float, - positionOffsetPixels: Int - ) { - - } - - override fun onPageSelected(position: Int) { - if (menuItem != null) { - menuItem!!.isChecked = false - } else { - bottomNavigation.menu.getItem(0).isChecked = false - } - menuItem = bottomNavigation.menu.getItem(position) - menuItem!!.isChecked = true - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt new file mode 100644 index 0000000..f89d526 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt @@ -0,0 +1,47 @@ +package com.casic.br.view + +import android.util.Log +import com.casic.br.R +import com.casic.br.adapter.DeviceTypeAdapter +import com.casic.br.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import kotlinx.android.synthetic.main.activity_add_no_iot_device.* +import kotlinx.android.synthetic.main.include_left_back_title.* + +/** + * 添加非IoT设备 + * */ +class AddNoIotDeviceActivity : KotlinBaseActivity() { + + private val kTag = "DeviceTypeFragment" + private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") + + override fun initLayoutView(): Int = R.layout.activity_add_no_iot_device + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + leftBackView.setOnClickListener { finish() } + titleView.text = String.format("添加非Iot设备") + } + + override fun initData() { + + } + + override fun initEvent() { + val deviceTypeAdapter = DeviceTypeAdapter(this, deviceTypes) + deviceTypeRecyclerView.adapter = deviceTypeAdapter + deviceTypeAdapter.setOnTypeItemClickListener(object : + DeviceTypeAdapter.OnTypeItemClickListener { + override fun onItemClick(position: Int) { + Log.d(kTag, "onItemClick: ${deviceTypes[position]}") + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/EditUserActivity.kt b/app/src/main/java/com/casic/br/view/EditUserActivity.kt index a64fdde..8beba94 100644 --- a/app/src/main/java/com/casic/br/view/EditUserActivity.kt +++ b/app/src/main/java/com/casic/br/view/EditUserActivity.kt @@ -73,7 +73,11 @@ } userNameView.text = currentUser.name userPhoneView.text = currentUser.phone - genderView.text = LocaleConstant.GENDER_ARRAY[currentUser.sex - 1] + if (currentUser.sex.isBlank()) { + genderView.text = resources.getString(R.string.unknown) + } else { + genderView.text = LocaleConstant.GENDER_ARRAY[(currentUser.sex).toInt() - 1] + } birthdayView.text = currentUser.birthday calculateCompleteValue() } @@ -209,7 +213,7 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //更新性别 - currentUser.sex = position + 1 + currentUser.sex = (position + 1).toString() userViewModel.updateUserInfo(currentUser) genderView.text = LocaleConstant.GENDER_ARRAY[position] calculateCompleteValue() diff --git a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt index 1d3f0ca..bf6f887 100644 --- a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt +++ b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt @@ -17,8 +17,8 @@ private val gson by lazy { Gson() } val listModel = MutableLiveData() - fun obtainBanner(bannerName: String) = launch({ - val response = RetrofitServiceManager.obtainBanner(bannerName) + fun obtainBanner(bannerName: String, bannerModule: String) = launch({ + val response = RetrofitServiceManager.obtainBanner(bannerName, bannerModule) val responseCode = response.separateResponseCode() if (responseCode == 200) { listModel.value = gson.fromJson( diff --git a/app/src/main/res/drawable/ic_scan.xml b/app/src/main/res/drawable/ic_scan.xml index 53f6af9..bf25454 100644 --- a/app/src/main/res/drawable/ic_scan.xml +++ b/app/src/main/res/drawable/ic_scan.xml @@ -1,21 +1,21 @@ diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 40b71c3..1dc6fb1 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -104,7 +104,10 @@ */ @Multipart @POST("/file/uploadFile") - suspend fun uploadImage(@Part file: MultipartBody.Part): String + suspend fun uploadImage( + @Header("token") token: String, + @Part file: MultipartBody.Part + ): String /** * 添加设备 diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 4baebdb..9a0d747 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -196,9 +196,10 @@ /** * Banner */ - suspend fun obtainBanner(bannerName: String): String { + suspend fun obtainBanner(bannerName: String, bannerModule: String): String { val paramObject = JSONObject() paramObject.put("bannerName", bannerName) + paramObject.put("bannerModule", bannerModule) val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -217,7 +218,7 @@ suspend fun uploadImage(image: File): String { val requestBody = image.asRequestBody("image/jpeg".toMediaTypeOrNull()) val imagePart = MultipartBody.Part.createFormData("file", image.name, requestBody) - return api.uploadImage(imagePart) + return api.uploadImage(AuthenticationHelper.token!!,imagePart) } /** diff --git a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt index 210a258..8f652b2 100644 --- a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt @@ -35,7 +35,7 @@ } notIotDevice.setOnClickListener { - navigatePageTo() + navigatePageTo() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt deleted file mode 100644 index 2239c9d..0000000 --- a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.br.view - -import android.view.MenuItem -import androidx.fragment.app.Fragment -import androidx.viewpager.widget.ViewPager -import com.casic.br.R -import com.casic.br.adapter.ViewPagerAdapter -import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.fragment.add.DeviceTypeFragment -import com.casic.br.fragment.add.NearbyDeviceFragment -import com.casic.br.fragment.add.ScanDeviceFragment -import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.base.KotlinBaseActivity -import kotlinx.android.synthetic.main.activity_add_device_tab.* -import kotlinx.android.synthetic.main.include_left_back_title.* - -/** - * 添加非IoT设备 - * */ -class AddDeviceTabActivity : KotlinBaseActivity() { - - private var menuItem: MenuItem? = null - private var fragmentPages: ArrayList = ArrayList() - - init { - fragmentPages.add(ScanDeviceFragment()) - fragmentPages.add(DeviceTypeFragment()) - fragmentPages.add(NearbyDeviceFragment()) - } - - override fun initLayoutView(): Int = R.layout.activity_add_device_tab - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) - leftBackView.setOnClickListener { finish() } - titleView.text = "扫码添加设备" - } - - override fun initData() { - - } - - override fun initEvent() { - bottomNavigation.setOnItemSelectedListener { menuItem -> - when (menuItem.itemId) { - R.id.nav_scan -> { - addDeviceViewPager.currentItem = 0 - titleView.text = "扫码添加设备" - } - R.id.nav_type -> { - addDeviceViewPager.currentItem = 1 - titleView.text = "按型号添加设备" - } - R.id.nav_nearby -> { - addDeviceViewPager.currentItem = 2 - titleView.text = "附近设备" - } - } - false - } - addDeviceViewPager.adapter = ViewPagerAdapter(fragmentPages, supportFragmentManager) - addDeviceViewPager.offscreenPageLimit = fragmentPages.size //缓存页数 - addDeviceViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrollStateChanged(state: Int) { - - } - - override fun onPageScrolled( - position: Int, - positionOffset: Float, - positionOffsetPixels: Int - ) { - - } - - override fun onPageSelected(position: Int) { - if (menuItem != null) { - menuItem!!.isChecked = false - } else { - bottomNavigation.menu.getItem(0).isChecked = false - } - menuItem = bottomNavigation.menu.getItem(position) - menuItem!!.isChecked = true - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt new file mode 100644 index 0000000..f89d526 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt @@ -0,0 +1,47 @@ +package com.casic.br.view + +import android.util.Log +import com.casic.br.R +import com.casic.br.adapter.DeviceTypeAdapter +import com.casic.br.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import kotlinx.android.synthetic.main.activity_add_no_iot_device.* +import kotlinx.android.synthetic.main.include_left_back_title.* + +/** + * 添加非IoT设备 + * */ +class AddNoIotDeviceActivity : KotlinBaseActivity() { + + private val kTag = "DeviceTypeFragment" + private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") + + override fun initLayoutView(): Int = R.layout.activity_add_no_iot_device + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + leftBackView.setOnClickListener { finish() } + titleView.text = String.format("添加非Iot设备") + } + + override fun initData() { + + } + + override fun initEvent() { + val deviceTypeAdapter = DeviceTypeAdapter(this, deviceTypes) + deviceTypeRecyclerView.adapter = deviceTypeAdapter + deviceTypeAdapter.setOnTypeItemClickListener(object : + DeviceTypeAdapter.OnTypeItemClickListener { + override fun onItemClick(position: Int) { + Log.d(kTag, "onItemClick: ${deviceTypes[position]}") + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/EditUserActivity.kt b/app/src/main/java/com/casic/br/view/EditUserActivity.kt index a64fdde..8beba94 100644 --- a/app/src/main/java/com/casic/br/view/EditUserActivity.kt +++ b/app/src/main/java/com/casic/br/view/EditUserActivity.kt @@ -73,7 +73,11 @@ } userNameView.text = currentUser.name userPhoneView.text = currentUser.phone - genderView.text = LocaleConstant.GENDER_ARRAY[currentUser.sex - 1] + if (currentUser.sex.isBlank()) { + genderView.text = resources.getString(R.string.unknown) + } else { + genderView.text = LocaleConstant.GENDER_ARRAY[(currentUser.sex).toInt() - 1] + } birthdayView.text = currentUser.birthday calculateCompleteValue() } @@ -209,7 +213,7 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //更新性别 - currentUser.sex = position + 1 + currentUser.sex = (position + 1).toString() userViewModel.updateUserInfo(currentUser) genderView.text = LocaleConstant.GENDER_ARRAY[position] calculateCompleteValue() diff --git a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt index 1d3f0ca..bf6f887 100644 --- a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt +++ b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt @@ -17,8 +17,8 @@ private val gson by lazy { Gson() } val listModel = MutableLiveData() - fun obtainBanner(bannerName: String) = launch({ - val response = RetrofitServiceManager.obtainBanner(bannerName) + fun obtainBanner(bannerName: String, bannerModule: String) = launch({ + val response = RetrofitServiceManager.obtainBanner(bannerName, bannerModule) val responseCode = response.separateResponseCode() if (responseCode == 200) { listModel.value = gson.fromJson( diff --git a/app/src/main/res/drawable/ic_scan.xml b/app/src/main/res/drawable/ic_scan.xml index 53f6af9..bf25454 100644 --- a/app/src/main/res/drawable/ic_scan.xml +++ b/app/src/main/res/drawable/ic_scan.xml @@ -1,21 +1,21 @@ diff --git a/app/src/main/res/layout/activity_add_device_tab.xml b/app/src/main/res/layout/activity_add_device_tab.xml deleted file mode 100644 index 44c2c9c..0000000 --- a/app/src/main/res/layout/activity_add_device_tab.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 40b71c3..1dc6fb1 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -104,7 +104,10 @@ */ @Multipart @POST("/file/uploadFile") - suspend fun uploadImage(@Part file: MultipartBody.Part): String + suspend fun uploadImage( + @Header("token") token: String, + @Part file: MultipartBody.Part + ): String /** * 添加设备 diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 4baebdb..9a0d747 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -196,9 +196,10 @@ /** * Banner */ - suspend fun obtainBanner(bannerName: String): String { + suspend fun obtainBanner(bannerName: String, bannerModule: String): String { val paramObject = JSONObject() paramObject.put("bannerName", bannerName) + paramObject.put("bannerModule", bannerModule) val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -217,7 +218,7 @@ suspend fun uploadImage(image: File): String { val requestBody = image.asRequestBody("image/jpeg".toMediaTypeOrNull()) val imagePart = MultipartBody.Part.createFormData("file", image.name, requestBody) - return api.uploadImage(imagePart) + return api.uploadImage(AuthenticationHelper.token!!,imagePart) } /** diff --git a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt index 210a258..8f652b2 100644 --- a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt @@ -35,7 +35,7 @@ } notIotDevice.setOnClickListener { - navigatePageTo() + navigatePageTo() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt deleted file mode 100644 index 2239c9d..0000000 --- a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.br.view - -import android.view.MenuItem -import androidx.fragment.app.Fragment -import androidx.viewpager.widget.ViewPager -import com.casic.br.R -import com.casic.br.adapter.ViewPagerAdapter -import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.fragment.add.DeviceTypeFragment -import com.casic.br.fragment.add.NearbyDeviceFragment -import com.casic.br.fragment.add.ScanDeviceFragment -import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.base.KotlinBaseActivity -import kotlinx.android.synthetic.main.activity_add_device_tab.* -import kotlinx.android.synthetic.main.include_left_back_title.* - -/** - * 添加非IoT设备 - * */ -class AddDeviceTabActivity : KotlinBaseActivity() { - - private var menuItem: MenuItem? = null - private var fragmentPages: ArrayList = ArrayList() - - init { - fragmentPages.add(ScanDeviceFragment()) - fragmentPages.add(DeviceTypeFragment()) - fragmentPages.add(NearbyDeviceFragment()) - } - - override fun initLayoutView(): Int = R.layout.activity_add_device_tab - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) - leftBackView.setOnClickListener { finish() } - titleView.text = "扫码添加设备" - } - - override fun initData() { - - } - - override fun initEvent() { - bottomNavigation.setOnItemSelectedListener { menuItem -> - when (menuItem.itemId) { - R.id.nav_scan -> { - addDeviceViewPager.currentItem = 0 - titleView.text = "扫码添加设备" - } - R.id.nav_type -> { - addDeviceViewPager.currentItem = 1 - titleView.text = "按型号添加设备" - } - R.id.nav_nearby -> { - addDeviceViewPager.currentItem = 2 - titleView.text = "附近设备" - } - } - false - } - addDeviceViewPager.adapter = ViewPagerAdapter(fragmentPages, supportFragmentManager) - addDeviceViewPager.offscreenPageLimit = fragmentPages.size //缓存页数 - addDeviceViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrollStateChanged(state: Int) { - - } - - override fun onPageScrolled( - position: Int, - positionOffset: Float, - positionOffsetPixels: Int - ) { - - } - - override fun onPageSelected(position: Int) { - if (menuItem != null) { - menuItem!!.isChecked = false - } else { - bottomNavigation.menu.getItem(0).isChecked = false - } - menuItem = bottomNavigation.menu.getItem(position) - menuItem!!.isChecked = true - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt new file mode 100644 index 0000000..f89d526 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt @@ -0,0 +1,47 @@ +package com.casic.br.view + +import android.util.Log +import com.casic.br.R +import com.casic.br.adapter.DeviceTypeAdapter +import com.casic.br.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import kotlinx.android.synthetic.main.activity_add_no_iot_device.* +import kotlinx.android.synthetic.main.include_left_back_title.* + +/** + * 添加非IoT设备 + * */ +class AddNoIotDeviceActivity : KotlinBaseActivity() { + + private val kTag = "DeviceTypeFragment" + private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") + + override fun initLayoutView(): Int = R.layout.activity_add_no_iot_device + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + leftBackView.setOnClickListener { finish() } + titleView.text = String.format("添加非Iot设备") + } + + override fun initData() { + + } + + override fun initEvent() { + val deviceTypeAdapter = DeviceTypeAdapter(this, deviceTypes) + deviceTypeRecyclerView.adapter = deviceTypeAdapter + deviceTypeAdapter.setOnTypeItemClickListener(object : + DeviceTypeAdapter.OnTypeItemClickListener { + override fun onItemClick(position: Int) { + Log.d(kTag, "onItemClick: ${deviceTypes[position]}") + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/EditUserActivity.kt b/app/src/main/java/com/casic/br/view/EditUserActivity.kt index a64fdde..8beba94 100644 --- a/app/src/main/java/com/casic/br/view/EditUserActivity.kt +++ b/app/src/main/java/com/casic/br/view/EditUserActivity.kt @@ -73,7 +73,11 @@ } userNameView.text = currentUser.name userPhoneView.text = currentUser.phone - genderView.text = LocaleConstant.GENDER_ARRAY[currentUser.sex - 1] + if (currentUser.sex.isBlank()) { + genderView.text = resources.getString(R.string.unknown) + } else { + genderView.text = LocaleConstant.GENDER_ARRAY[(currentUser.sex).toInt() - 1] + } birthdayView.text = currentUser.birthday calculateCompleteValue() } @@ -209,7 +213,7 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //更新性别 - currentUser.sex = position + 1 + currentUser.sex = (position + 1).toString() userViewModel.updateUserInfo(currentUser) genderView.text = LocaleConstant.GENDER_ARRAY[position] calculateCompleteValue() diff --git a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt index 1d3f0ca..bf6f887 100644 --- a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt +++ b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt @@ -17,8 +17,8 @@ private val gson by lazy { Gson() } val listModel = MutableLiveData() - fun obtainBanner(bannerName: String) = launch({ - val response = RetrofitServiceManager.obtainBanner(bannerName) + fun obtainBanner(bannerName: String, bannerModule: String) = launch({ + val response = RetrofitServiceManager.obtainBanner(bannerName, bannerModule) val responseCode = response.separateResponseCode() if (responseCode == 200) { listModel.value = gson.fromJson( diff --git a/app/src/main/res/drawable/ic_scan.xml b/app/src/main/res/drawable/ic_scan.xml index 53f6af9..bf25454 100644 --- a/app/src/main/res/drawable/ic_scan.xml +++ b/app/src/main/res/drawable/ic_scan.xml @@ -1,21 +1,21 @@ diff --git a/app/src/main/res/layout/activity_add_device_tab.xml b/app/src/main/res/layout/activity_add_device_tab.xml deleted file mode 100644 index 44c2c9c..0000000 --- a/app/src/main/res/layout/activity_add_device_tab.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_add_no_iot_device.xml b/app/src/main/res/layout/activity_add_no_iot_device.xml new file mode 100644 index 0000000..d78c4b2 --- /dev/null +++ b/app/src/main/res/layout/activity_add_no_iot_device.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 40b71c3..1dc6fb1 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -104,7 +104,10 @@ */ @Multipart @POST("/file/uploadFile") - suspend fun uploadImage(@Part file: MultipartBody.Part): String + suspend fun uploadImage( + @Header("token") token: String, + @Part file: MultipartBody.Part + ): String /** * 添加设备 diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 4baebdb..9a0d747 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -196,9 +196,10 @@ /** * Banner */ - suspend fun obtainBanner(bannerName: String): String { + suspend fun obtainBanner(bannerName: String, bannerModule: String): String { val paramObject = JSONObject() paramObject.put("bannerName", bannerName) + paramObject.put("bannerModule", bannerModule) val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -217,7 +218,7 @@ suspend fun uploadImage(image: File): String { val requestBody = image.asRequestBody("image/jpeg".toMediaTypeOrNull()) val imagePart = MultipartBody.Part.createFormData("file", image.name, requestBody) - return api.uploadImage(imagePart) + return api.uploadImage(AuthenticationHelper.token!!,imagePart) } /** diff --git a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt index 210a258..8f652b2 100644 --- a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt @@ -35,7 +35,7 @@ } notIotDevice.setOnClickListener { - navigatePageTo() + navigatePageTo() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt deleted file mode 100644 index 2239c9d..0000000 --- a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.br.view - -import android.view.MenuItem -import androidx.fragment.app.Fragment -import androidx.viewpager.widget.ViewPager -import com.casic.br.R -import com.casic.br.adapter.ViewPagerAdapter -import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.fragment.add.DeviceTypeFragment -import com.casic.br.fragment.add.NearbyDeviceFragment -import com.casic.br.fragment.add.ScanDeviceFragment -import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.base.KotlinBaseActivity -import kotlinx.android.synthetic.main.activity_add_device_tab.* -import kotlinx.android.synthetic.main.include_left_back_title.* - -/** - * 添加非IoT设备 - * */ -class AddDeviceTabActivity : KotlinBaseActivity() { - - private var menuItem: MenuItem? = null - private var fragmentPages: ArrayList = ArrayList() - - init { - fragmentPages.add(ScanDeviceFragment()) - fragmentPages.add(DeviceTypeFragment()) - fragmentPages.add(NearbyDeviceFragment()) - } - - override fun initLayoutView(): Int = R.layout.activity_add_device_tab - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) - leftBackView.setOnClickListener { finish() } - titleView.text = "扫码添加设备" - } - - override fun initData() { - - } - - override fun initEvent() { - bottomNavigation.setOnItemSelectedListener { menuItem -> - when (menuItem.itemId) { - R.id.nav_scan -> { - addDeviceViewPager.currentItem = 0 - titleView.text = "扫码添加设备" - } - R.id.nav_type -> { - addDeviceViewPager.currentItem = 1 - titleView.text = "按型号添加设备" - } - R.id.nav_nearby -> { - addDeviceViewPager.currentItem = 2 - titleView.text = "附近设备" - } - } - false - } - addDeviceViewPager.adapter = ViewPagerAdapter(fragmentPages, supportFragmentManager) - addDeviceViewPager.offscreenPageLimit = fragmentPages.size //缓存页数 - addDeviceViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrollStateChanged(state: Int) { - - } - - override fun onPageScrolled( - position: Int, - positionOffset: Float, - positionOffsetPixels: Int - ) { - - } - - override fun onPageSelected(position: Int) { - if (menuItem != null) { - menuItem!!.isChecked = false - } else { - bottomNavigation.menu.getItem(0).isChecked = false - } - menuItem = bottomNavigation.menu.getItem(position) - menuItem!!.isChecked = true - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt new file mode 100644 index 0000000..f89d526 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt @@ -0,0 +1,47 @@ +package com.casic.br.view + +import android.util.Log +import com.casic.br.R +import com.casic.br.adapter.DeviceTypeAdapter +import com.casic.br.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import kotlinx.android.synthetic.main.activity_add_no_iot_device.* +import kotlinx.android.synthetic.main.include_left_back_title.* + +/** + * 添加非IoT设备 + * */ +class AddNoIotDeviceActivity : KotlinBaseActivity() { + + private val kTag = "DeviceTypeFragment" + private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") + + override fun initLayoutView(): Int = R.layout.activity_add_no_iot_device + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + leftBackView.setOnClickListener { finish() } + titleView.text = String.format("添加非Iot设备") + } + + override fun initData() { + + } + + override fun initEvent() { + val deviceTypeAdapter = DeviceTypeAdapter(this, deviceTypes) + deviceTypeRecyclerView.adapter = deviceTypeAdapter + deviceTypeAdapter.setOnTypeItemClickListener(object : + DeviceTypeAdapter.OnTypeItemClickListener { + override fun onItemClick(position: Int) { + Log.d(kTag, "onItemClick: ${deviceTypes[position]}") + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/EditUserActivity.kt b/app/src/main/java/com/casic/br/view/EditUserActivity.kt index a64fdde..8beba94 100644 --- a/app/src/main/java/com/casic/br/view/EditUserActivity.kt +++ b/app/src/main/java/com/casic/br/view/EditUserActivity.kt @@ -73,7 +73,11 @@ } userNameView.text = currentUser.name userPhoneView.text = currentUser.phone - genderView.text = LocaleConstant.GENDER_ARRAY[currentUser.sex - 1] + if (currentUser.sex.isBlank()) { + genderView.text = resources.getString(R.string.unknown) + } else { + genderView.text = LocaleConstant.GENDER_ARRAY[(currentUser.sex).toInt() - 1] + } birthdayView.text = currentUser.birthday calculateCompleteValue() } @@ -209,7 +213,7 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //更新性别 - currentUser.sex = position + 1 + currentUser.sex = (position + 1).toString() userViewModel.updateUserInfo(currentUser) genderView.text = LocaleConstant.GENDER_ARRAY[position] calculateCompleteValue() diff --git a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt index 1d3f0ca..bf6f887 100644 --- a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt +++ b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt @@ -17,8 +17,8 @@ private val gson by lazy { Gson() } val listModel = MutableLiveData() - fun obtainBanner(bannerName: String) = launch({ - val response = RetrofitServiceManager.obtainBanner(bannerName) + fun obtainBanner(bannerName: String, bannerModule: String) = launch({ + val response = RetrofitServiceManager.obtainBanner(bannerName, bannerModule) val responseCode = response.separateResponseCode() if (responseCode == 200) { listModel.value = gson.fromJson( diff --git a/app/src/main/res/drawable/ic_scan.xml b/app/src/main/res/drawable/ic_scan.xml index 53f6af9..bf25454 100644 --- a/app/src/main/res/drawable/ic_scan.xml +++ b/app/src/main/res/drawable/ic_scan.xml @@ -1,21 +1,21 @@ diff --git a/app/src/main/res/layout/activity_add_device_tab.xml b/app/src/main/res/layout/activity_add_device_tab.xml deleted file mode 100644 index 44c2c9c..0000000 --- a/app/src/main/res/layout/activity_add_device_tab.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_add_no_iot_device.xml b/app/src/main/res/layout/activity_add_no_iot_device.xml new file mode 100644 index 0000000..d78c4b2 --- /dev/null +++ b/app/src/main/res/layout/activity_add_no_iot_device.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_gas_consume.xml b/app/src/main/res/layout/activity_gas_consume.xml index 2b2473a..47824ce 100644 --- a/app/src/main/res/layout/activity_gas_consume.xml +++ b/app/src/main/res/layout/activity_gas_consume.xml @@ -84,7 +84,8 @@ + android:layout_weight="1" + android:orientation="vertical"> + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 40b71c3..1dc6fb1 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -104,7 +104,10 @@ */ @Multipart @POST("/file/uploadFile") - suspend fun uploadImage(@Part file: MultipartBody.Part): String + suspend fun uploadImage( + @Header("token") token: String, + @Part file: MultipartBody.Part + ): String /** * 添加设备 diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 4baebdb..9a0d747 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -196,9 +196,10 @@ /** * Banner */ - suspend fun obtainBanner(bannerName: String): String { + suspend fun obtainBanner(bannerName: String, bannerModule: String): String { val paramObject = JSONObject() paramObject.put("bannerName", bannerName) + paramObject.put("bannerModule", bannerModule) val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -217,7 +218,7 @@ suspend fun uploadImage(image: File): String { val requestBody = image.asRequestBody("image/jpeg".toMediaTypeOrNull()) val imagePart = MultipartBody.Part.createFormData("file", image.name, requestBody) - return api.uploadImage(imagePart) + return api.uploadImage(AuthenticationHelper.token!!,imagePart) } /** diff --git a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt index 210a258..8f652b2 100644 --- a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt @@ -35,7 +35,7 @@ } notIotDevice.setOnClickListener { - navigatePageTo() + navigatePageTo() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt deleted file mode 100644 index 2239c9d..0000000 --- a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.br.view - -import android.view.MenuItem -import androidx.fragment.app.Fragment -import androidx.viewpager.widget.ViewPager -import com.casic.br.R -import com.casic.br.adapter.ViewPagerAdapter -import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.fragment.add.DeviceTypeFragment -import com.casic.br.fragment.add.NearbyDeviceFragment -import com.casic.br.fragment.add.ScanDeviceFragment -import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.base.KotlinBaseActivity -import kotlinx.android.synthetic.main.activity_add_device_tab.* -import kotlinx.android.synthetic.main.include_left_back_title.* - -/** - * 添加非IoT设备 - * */ -class AddDeviceTabActivity : KotlinBaseActivity() { - - private var menuItem: MenuItem? = null - private var fragmentPages: ArrayList = ArrayList() - - init { - fragmentPages.add(ScanDeviceFragment()) - fragmentPages.add(DeviceTypeFragment()) - fragmentPages.add(NearbyDeviceFragment()) - } - - override fun initLayoutView(): Int = R.layout.activity_add_device_tab - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) - leftBackView.setOnClickListener { finish() } - titleView.text = "扫码添加设备" - } - - override fun initData() { - - } - - override fun initEvent() { - bottomNavigation.setOnItemSelectedListener { menuItem -> - when (menuItem.itemId) { - R.id.nav_scan -> { - addDeviceViewPager.currentItem = 0 - titleView.text = "扫码添加设备" - } - R.id.nav_type -> { - addDeviceViewPager.currentItem = 1 - titleView.text = "按型号添加设备" - } - R.id.nav_nearby -> { - addDeviceViewPager.currentItem = 2 - titleView.text = "附近设备" - } - } - false - } - addDeviceViewPager.adapter = ViewPagerAdapter(fragmentPages, supportFragmentManager) - addDeviceViewPager.offscreenPageLimit = fragmentPages.size //缓存页数 - addDeviceViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrollStateChanged(state: Int) { - - } - - override fun onPageScrolled( - position: Int, - positionOffset: Float, - positionOffsetPixels: Int - ) { - - } - - override fun onPageSelected(position: Int) { - if (menuItem != null) { - menuItem!!.isChecked = false - } else { - bottomNavigation.menu.getItem(0).isChecked = false - } - menuItem = bottomNavigation.menu.getItem(position) - menuItem!!.isChecked = true - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt new file mode 100644 index 0000000..f89d526 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt @@ -0,0 +1,47 @@ +package com.casic.br.view + +import android.util.Log +import com.casic.br.R +import com.casic.br.adapter.DeviceTypeAdapter +import com.casic.br.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import kotlinx.android.synthetic.main.activity_add_no_iot_device.* +import kotlinx.android.synthetic.main.include_left_back_title.* + +/** + * 添加非IoT设备 + * */ +class AddNoIotDeviceActivity : KotlinBaseActivity() { + + private val kTag = "DeviceTypeFragment" + private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") + + override fun initLayoutView(): Int = R.layout.activity_add_no_iot_device + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + leftBackView.setOnClickListener { finish() } + titleView.text = String.format("添加非Iot设备") + } + + override fun initData() { + + } + + override fun initEvent() { + val deviceTypeAdapter = DeviceTypeAdapter(this, deviceTypes) + deviceTypeRecyclerView.adapter = deviceTypeAdapter + deviceTypeAdapter.setOnTypeItemClickListener(object : + DeviceTypeAdapter.OnTypeItemClickListener { + override fun onItemClick(position: Int) { + Log.d(kTag, "onItemClick: ${deviceTypes[position]}") + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/EditUserActivity.kt b/app/src/main/java/com/casic/br/view/EditUserActivity.kt index a64fdde..8beba94 100644 --- a/app/src/main/java/com/casic/br/view/EditUserActivity.kt +++ b/app/src/main/java/com/casic/br/view/EditUserActivity.kt @@ -73,7 +73,11 @@ } userNameView.text = currentUser.name userPhoneView.text = currentUser.phone - genderView.text = LocaleConstant.GENDER_ARRAY[currentUser.sex - 1] + if (currentUser.sex.isBlank()) { + genderView.text = resources.getString(R.string.unknown) + } else { + genderView.text = LocaleConstant.GENDER_ARRAY[(currentUser.sex).toInt() - 1] + } birthdayView.text = currentUser.birthday calculateCompleteValue() } @@ -209,7 +213,7 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //更新性别 - currentUser.sex = position + 1 + currentUser.sex = (position + 1).toString() userViewModel.updateUserInfo(currentUser) genderView.text = LocaleConstant.GENDER_ARRAY[position] calculateCompleteValue() diff --git a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt index 1d3f0ca..bf6f887 100644 --- a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt +++ b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt @@ -17,8 +17,8 @@ private val gson by lazy { Gson() } val listModel = MutableLiveData() - fun obtainBanner(bannerName: String) = launch({ - val response = RetrofitServiceManager.obtainBanner(bannerName) + fun obtainBanner(bannerName: String, bannerModule: String) = launch({ + val response = RetrofitServiceManager.obtainBanner(bannerName, bannerModule) val responseCode = response.separateResponseCode() if (responseCode == 200) { listModel.value = gson.fromJson( diff --git a/app/src/main/res/drawable/ic_scan.xml b/app/src/main/res/drawable/ic_scan.xml index 53f6af9..bf25454 100644 --- a/app/src/main/res/drawable/ic_scan.xml +++ b/app/src/main/res/drawable/ic_scan.xml @@ -1,21 +1,21 @@ diff --git a/app/src/main/res/layout/activity_add_device_tab.xml b/app/src/main/res/layout/activity_add_device_tab.xml deleted file mode 100644 index 44c2c9c..0000000 --- a/app/src/main/res/layout/activity_add_device_tab.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_add_no_iot_device.xml b/app/src/main/res/layout/activity_add_no_iot_device.xml new file mode 100644 index 0000000..d78c4b2 --- /dev/null +++ b/app/src/main/res/layout/activity_add_no_iot_device.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_gas_consume.xml b/app/src/main/res/layout/activity_gas_consume.xml index 2b2473a..47824ce 100644 --- a/app/src/main/res/layout/activity_gas_consume.xml +++ b/app/src/main/res/layout/activity_gas_consume.xml @@ -84,7 +84,8 @@ + android:layout_weight="1" + android:orientation="vertical"> + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_add_device_nearby.xml b/app/src/main/res/layout/fragment_add_device_nearby.xml deleted file mode 100644 index 6731e69..0000000 --- a/app/src/main/res/layout/fragment_add_device_nearby.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9f1b98d..3c8537f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.text.SimpleDateFormat + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -42,7 +44,7 @@ applicationVariants.all { variant -> variant.outputs.all { - outputFileName = defaultConfig.versionName + ".apk" + outputFileName = getBuildDate() + ".apk" } } @@ -51,6 +53,11 @@ } } +static def getBuildDate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHMM", Locale.CHINA) + return dateFormat.format(System.currentTimeMillis()) +} + dependencies { //基础依赖库 implementation files('libs/lite-release.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1cc04ea..d117c43 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -61,7 +61,7 @@ - + diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt index f568db4..82b1a87 100644 --- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt @@ -6,6 +6,7 @@ import com.casic.br.R import com.casic.br.adapter.ConnectGridAdapter import com.casic.br.adapter.HomeGridAdapter +import com.casic.br.extensions.combineImagePath import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.model.BannerImageModel import com.casic.br.utils.DeserializeModel @@ -117,7 +118,7 @@ } private fun initBanner() { - bannerViewModel.obtainBanner("") + bannerViewModel.obtainBanner("", "1") bannerViewModel.listModel.observe(this, { if (it.code == 200) { val banner = homeBannerView as Banner {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -63,10 +70,18 @@ IconTextGridAdapter.OnGridItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} - 3 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } + 3 -> { + "此功能待后续完善".show(requireContext()) + } } } }) @@ -85,9 +100,15 @@ IconTextListAdapter.OnListItemClickListener { override fun onItemClick(position: Int) { when (position) { - 0 -> {} - 1 -> {} - 2 -> {} + 0 -> { + "此功能待后续完善".show(requireContext()) + } + 1 -> { + "此功能待后续完善".show(requireContext()) + } + 2 -> { + "此功能待后续完善".show(requireContext()) + } //地址管理 3 -> { if (DeserializeModel.isLogin()) { diff --git a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt b/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt deleted file mode 100644 index 2c6d74a..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/DeviceTypeFragment.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.adapter.DeviceTypeAdapter -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_type.* - -class DeviceTypeFragment : KotlinBaseFragment() { - - private val kTag = "DeviceTypeFragment" - private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") - - override fun initLayoutView(): Int = R.layout.fragment_add_device_type - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - val deviceTypeAdapter = - DeviceTypeAdapter(requireContext(), deviceTypes) - deviceTypeRecyclerView.adapter = deviceTypeAdapter - deviceTypeAdapter.setOnTypeItemClickListener(object : - DeviceTypeAdapter.OnTypeItemClickListener { - override fun onItemClick(position: Int) { - Log.d(kTag, "onItemClick: ${deviceTypes[position]}") - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt deleted file mode 100644 index e2b403b..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/NearbyDeviceFragment.kt +++ /dev/null @@ -1,70 +0,0 @@ -package com.casic.br.fragment.add - -import android.util.Log -import com.casic.br.R -import com.casic.br.widgets.WaterRippleView -import com.pengxh.kt.lite.base.KotlinBaseFragment -import kotlinx.android.synthetic.main.fragment_add_device_nearby.* -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class NearbyDeviceFragment : KotlinBaseFragment() { - - private val kTag = "NearbyDeviceFragment" - private var isRunning = true - private lateinit var singleThreadExecutor: ExecutorService - - override fun initLayoutView(): Int = R.layout.fragment_add_device_nearby - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - //只有一个核心线程,当被占用时,其他的任务需要进入队列等待 - singleThreadExecutor = Executors.newSingleThreadExecutor() - } - - override fun initEvent() { - waterRippleView.setOnAnimationStartListener(object : - WaterRippleView.OnAnimationStartListener { - override fun onStart(view: WaterRippleView?) { - view?.start() - //开启线程搜索设备 - Log.d(kTag, "onStart: 开始线程") - singleThreadExecutor.execute(searchRunnable) - isRunning = true - } - }) - } - - private val searchRunnable = Runnable { - while (true) { - try { - if (!isRunning) { - Log.d(kTag, "run: 设备搜索线程休眠中...") - Thread.sleep(Long.MAX_VALUE) - } - } catch (e: Exception) { - e.printStackTrace() - } - Log.d(kTag, "run: 设备搜索线程运行中...") - try { - //搜索设备 - Thread.sleep(1000) - } catch (e: InterruptedException) { - e.printStackTrace() - } - } - } - - override fun onPause() { - super.onPause() - isRunning = false - waterRippleView.stop() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt b/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt deleted file mode 100644 index 14c7411..0000000 --- a/app/src/main/java/com/casic/br/fragment/add/ScanDeviceFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.casic.br.fragment.add - -import com.casic.br.R -import com.pengxh.kt.lite.base.KotlinBaseFragment - -class ScanDeviceFragment : KotlinBaseFragment() { - - override fun initLayoutView(): Int = R.layout.fragment_add_device_scan - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - - } - - override fun initData() { - - } - - override fun initEvent() { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/UserDetailModel.java b/app/src/main/java/com/casic/br/model/UserDetailModel.java index cca5690..ea50d54 100644 --- a/app/src/main/java/com/casic/br/model/UserDetailModel.java +++ b/app/src/main/java/com/casic/br/model/UserDetailModel.java @@ -64,7 +64,7 @@ private String positionLng; private String roleId; private String salt; - private Integer sex; + private String sex; private String status; private String syncDeptid; private String syncId; @@ -266,11 +266,11 @@ this.salt = salt; } - public Integer getSex() { + public String getSex() { return sex; } - public void setSex(Integer sex) { + public void setSex(String sex) { this.sex = sex; } diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 40b71c3..1dc6fb1 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -104,7 +104,10 @@ */ @Multipart @POST("/file/uploadFile") - suspend fun uploadImage(@Part file: MultipartBody.Part): String + suspend fun uploadImage( + @Header("token") token: String, + @Part file: MultipartBody.Part + ): String /** * 添加设备 diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt index 4baebdb..9a0d747 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt @@ -196,9 +196,10 @@ /** * Banner */ - suspend fun obtainBanner(bannerName: String): String { + suspend fun obtainBanner(bannerName: String, bannerModule: String): String { val paramObject = JSONObject() paramObject.put("bannerName", bannerName) + paramObject.put("bannerModule", bannerModule) val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) @@ -217,7 +218,7 @@ suspend fun uploadImage(image: File): String { val requestBody = image.asRequestBody("image/jpeg".toMediaTypeOrNull()) val imagePart = MultipartBody.Part.createFormData("file", image.name, requestBody) - return api.uploadImage(imagePart) + return api.uploadImage(AuthenticationHelper.token!!,imagePart) } /** diff --git a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt index 210a258..8f652b2 100644 --- a/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/br/view/AddDeviceActivity.kt @@ -35,7 +35,7 @@ } notIotDevice.setOnClickListener { - navigatePageTo() + navigatePageTo() } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt b/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt deleted file mode 100644 index 2239c9d..0000000 --- a/app/src/main/java/com/casic/br/view/AddDeviceTabActivity.kt +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.br.view - -import android.view.MenuItem -import androidx.fragment.app.Fragment -import androidx.viewpager.widget.ViewPager -import com.casic.br.R -import com.casic.br.adapter.ViewPagerAdapter -import com.casic.br.extensions.initLayoutImmersionBar -import com.casic.br.fragment.add.DeviceTypeFragment -import com.casic.br.fragment.add.NearbyDeviceFragment -import com.casic.br.fragment.add.ScanDeviceFragment -import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.base.KotlinBaseActivity -import kotlinx.android.synthetic.main.activity_add_device_tab.* -import kotlinx.android.synthetic.main.include_left_back_title.* - -/** - * 添加非IoT设备 - * */ -class AddDeviceTabActivity : KotlinBaseActivity() { - - private var menuItem: MenuItem? = null - private var fragmentPages: ArrayList = ArrayList() - - init { - fragmentPages.add(ScanDeviceFragment()) - fragmentPages.add(DeviceTypeFragment()) - fragmentPages.add(NearbyDeviceFragment()) - } - - override fun initLayoutView(): Int = R.layout.activity_add_device_tab - - override fun observeRequestState() { - - } - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init() - initLayoutImmersionBar(rootView) - leftBackView.setOnClickListener { finish() } - titleView.text = "扫码添加设备" - } - - override fun initData() { - - } - - override fun initEvent() { - bottomNavigation.setOnItemSelectedListener { menuItem -> - when (menuItem.itemId) { - R.id.nav_scan -> { - addDeviceViewPager.currentItem = 0 - titleView.text = "扫码添加设备" - } - R.id.nav_type -> { - addDeviceViewPager.currentItem = 1 - titleView.text = "按型号添加设备" - } - R.id.nav_nearby -> { - addDeviceViewPager.currentItem = 2 - titleView.text = "附近设备" - } - } - false - } - addDeviceViewPager.adapter = ViewPagerAdapter(fragmentPages, supportFragmentManager) - addDeviceViewPager.offscreenPageLimit = fragmentPages.size //缓存页数 - addDeviceViewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrollStateChanged(state: Int) { - - } - - override fun onPageScrolled( - position: Int, - positionOffset: Float, - positionOffsetPixels: Int - ) { - - } - - override fun onPageSelected(position: Int) { - if (menuItem != null) { - menuItem!!.isChecked = false - } else { - bottomNavigation.menu.getItem(0).isChecked = false - } - menuItem = bottomNavigation.menu.getItem(position) - menuItem!!.isChecked = true - } - }) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt new file mode 100644 index 0000000..f89d526 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AddNoIotDeviceActivity.kt @@ -0,0 +1,47 @@ +package com.casic.br.view + +import android.util.Log +import com.casic.br.R +import com.casic.br.adapter.DeviceTypeAdapter +import com.casic.br.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import kotlinx.android.synthetic.main.activity_add_no_iot_device.* +import kotlinx.android.synthetic.main.include_left_back_title.* + +/** + * 添加非IoT设备 + * */ +class AddNoIotDeviceActivity : KotlinBaseActivity() { + + private val kTag = "DeviceTypeFragment" + private val deviceTypes = arrayOf("热水器", "油烟机", "厨灶具", "其他产品") + + override fun initLayoutView(): Int = R.layout.activity_add_no_iot_device + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + leftBackView.setOnClickListener { finish() } + titleView.text = String.format("添加非Iot设备") + } + + override fun initData() { + + } + + override fun initEvent() { + val deviceTypeAdapter = DeviceTypeAdapter(this, deviceTypes) + deviceTypeRecyclerView.adapter = deviceTypeAdapter + deviceTypeAdapter.setOnTypeItemClickListener(object : + DeviceTypeAdapter.OnTypeItemClickListener { + override fun onItemClick(position: Int) { + Log.d(kTag, "onItemClick: ${deviceTypes[position]}") + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/EditUserActivity.kt b/app/src/main/java/com/casic/br/view/EditUserActivity.kt index a64fdde..8beba94 100644 --- a/app/src/main/java/com/casic/br/view/EditUserActivity.kt +++ b/app/src/main/java/com/casic/br/view/EditUserActivity.kt @@ -73,7 +73,11 @@ } userNameView.text = currentUser.name userPhoneView.text = currentUser.phone - genderView.text = LocaleConstant.GENDER_ARRAY[currentUser.sex - 1] + if (currentUser.sex.isBlank()) { + genderView.text = resources.getString(R.string.unknown) + } else { + genderView.text = LocaleConstant.GENDER_ARRAY[(currentUser.sex).toInt() - 1] + } birthdayView.text = currentUser.birthday calculateCompleteValue() } @@ -209,7 +213,7 @@ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { override fun onActionItemClick(position: Int) { //更新性别 - currentUser.sex = position + 1 + currentUser.sex = (position + 1).toString() userViewModel.updateUserInfo(currentUser) genderView.text = LocaleConstant.GENDER_ARRAY[position] calculateCompleteValue() diff --git a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt index 1d3f0ca..bf6f887 100644 --- a/app/src/main/java/com/casic/br/vm/BannerViewModel.kt +++ b/app/src/main/java/com/casic/br/vm/BannerViewModel.kt @@ -17,8 +17,8 @@ private val gson by lazy { Gson() } val listModel = MutableLiveData() - fun obtainBanner(bannerName: String) = launch({ - val response = RetrofitServiceManager.obtainBanner(bannerName) + fun obtainBanner(bannerName: String, bannerModule: String) = launch({ + val response = RetrofitServiceManager.obtainBanner(bannerName, bannerModule) val responseCode = response.separateResponseCode() if (responseCode == 200) { listModel.value = gson.fromJson( diff --git a/app/src/main/res/drawable/ic_scan.xml b/app/src/main/res/drawable/ic_scan.xml index 53f6af9..bf25454 100644 --- a/app/src/main/res/drawable/ic_scan.xml +++ b/app/src/main/res/drawable/ic_scan.xml @@ -1,21 +1,21 @@ diff --git a/app/src/main/res/layout/activity_add_device_tab.xml b/app/src/main/res/layout/activity_add_device_tab.xml deleted file mode 100644 index 44c2c9c..0000000 --- a/app/src/main/res/layout/activity_add_device_tab.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_add_no_iot_device.xml b/app/src/main/res/layout/activity_add_no_iot_device.xml new file mode 100644 index 0000000..d78c4b2 --- /dev/null +++ b/app/src/main/res/layout/activity_add_no_iot_device.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_gas_consume.xml b/app/src/main/res/layout/activity_gas_consume.xml index 2b2473a..47824ce 100644 --- a/app/src/main/res/layout/activity_gas_consume.xml +++ b/app/src/main/res/layout/activity_gas_consume.xml @@ -84,7 +84,8 @@ + android:layout_weight="1" + android:orientation="vertical"> + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_add_device_nearby.xml b/app/src/main/res/layout/fragment_add_device_nearby.xml deleted file mode 100644 index 6731e69..0000000 --- a/app/src/main/res/layout/fragment_add_device_nearby.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_add_device_scan.xml b/app/src/main/res/layout/fragment_add_device_scan.xml deleted file mode 100644 index ba1566f..0000000 --- a/app/src/main/res/layout/fragment_add_device_scan.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - -