diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0e14b09..101282b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0e14b09..101282b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index d507f87..3a1b260 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -13,11 +13,14 @@ import com.casic.smarttube.R import com.casic.smarttube.databinding.FragmentOverviewBinding import com.casic.smarttube.model.ProjectGroupModel +import com.casic.smarttube.model.ProjectGroupModel.DataModel import com.casic.smarttube.view.GroupDeviceActivity import com.casic.smarttube.vm.ProjectGroupViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.LoadState @@ -29,8 +32,9 @@ private val kTag = "OverviewFragment" private val geocoderSearch by lazy { GeocodeSearch(requireContext()) } + private val marginOffsets by lazy { 6.dp2px(requireContext()) } private lateinit var groupViewModel: ProjectGroupViewModel - private lateinit var groupListAdapter: NormalRecyclerAdapter + private lateinit var groupListAdapter: NormalRecyclerAdapter private var clickedPosition = 0 private var isRefresh = false @@ -45,12 +49,20 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets( + marginOffsets, marginOffsets shr 1, marginOffsets, marginOffsets shr 1 + ) + ) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] groupViewModel.groupData.observe(this) { if (it.code == 200) { bindRecyclerView(it) } } + groupViewModel.getProGroupList(requireContext()) + groupViewModel.changeGroupResultData.observe(this) { if (it.code == 200) { groupListAdapter.notifyItemChanged(clickedPosition) @@ -80,11 +92,11 @@ binding.emptyView.visibility = View.GONE binding.recyclerView.visibility = View.VISIBLE - groupListAdapter = object : NormalRecyclerAdapter( + groupListAdapter = object : NormalRecyclerAdapter( R.layout.item_group_over_view_rv_l, it.data ) { override fun convertView( - viewHolder: ViewHolder, position: Int, item: ProjectGroupModel.DataModel + viewHolder: ViewHolder, position: Int, item: DataModel ) { viewHolder.setText(R.id.groupNameView, item.groupId) .setText(R.id.totalDeviceNumView, item.totalDevice) @@ -96,43 +108,17 @@ } if (item.latGaode.isBlank() || item.lngGaode.isBlank()) { viewHolder.setText( - R.id.groupLocationView, - "经纬度异常,无法查看具体位置" + R.id.groupLocationView, "经纬度异常,无法查看具体位置" ) } else { - val point = LatLonPoint( - item.latGaode.toDouble(), item.lngGaode.toDouble() - ) - val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) - geocoderSearch.getFromLocationAsyn(queryParam) - geocoderSearch.setOnGeocodeSearchListener(object : - GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched( - result: RegeocodeResult?, rCode: Int - ) { - if (rCode == 1000) { - viewHolder.setText( - R.id.groupLocationView, - String.format("${result?.regeocodeAddress?.formatAddress}") - ) - } - } - - override fun onGeocodeSearched( - result: GeocodeResult?, rCode: Int - ) { - - } - }) + searchLocation(item, viewHolder) } } } binding.recyclerView.adapter = groupListAdapter groupListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, item: ProjectGroupModel.DataModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: DataModel) { requireContext().navigatePageTo(item.groupId) } }) @@ -141,7 +127,27 @@ } } - private fun editGroupName(item: ProjectGroupModel.DataModel) { + private fun searchLocation(item: DataModel, viewHolder: ViewHolder) { + val point = LatLonPoint(item.latGaode.toDouble(), item.lngGaode.toDouble()) + val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + viewHolder.setText( + R.id.groupLocationView, + String.format("${result?.regeocodeAddress?.formatAddress}") + ) + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } + + private fun editGroupName(item: DataModel) { AlertInputDialog.Builder() .setContext(requireContext()) .setTitle("提示") diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0e14b09..101282b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index d507f87..3a1b260 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -13,11 +13,14 @@ import com.casic.smarttube.R import com.casic.smarttube.databinding.FragmentOverviewBinding import com.casic.smarttube.model.ProjectGroupModel +import com.casic.smarttube.model.ProjectGroupModel.DataModel import com.casic.smarttube.view.GroupDeviceActivity import com.casic.smarttube.vm.ProjectGroupViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.LoadState @@ -29,8 +32,9 @@ private val kTag = "OverviewFragment" private val geocoderSearch by lazy { GeocodeSearch(requireContext()) } + private val marginOffsets by lazy { 6.dp2px(requireContext()) } private lateinit var groupViewModel: ProjectGroupViewModel - private lateinit var groupListAdapter: NormalRecyclerAdapter + private lateinit var groupListAdapter: NormalRecyclerAdapter private var clickedPosition = 0 private var isRefresh = false @@ -45,12 +49,20 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets( + marginOffsets, marginOffsets shr 1, marginOffsets, marginOffsets shr 1 + ) + ) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] groupViewModel.groupData.observe(this) { if (it.code == 200) { bindRecyclerView(it) } } + groupViewModel.getProGroupList(requireContext()) + groupViewModel.changeGroupResultData.observe(this) { if (it.code == 200) { groupListAdapter.notifyItemChanged(clickedPosition) @@ -80,11 +92,11 @@ binding.emptyView.visibility = View.GONE binding.recyclerView.visibility = View.VISIBLE - groupListAdapter = object : NormalRecyclerAdapter( + groupListAdapter = object : NormalRecyclerAdapter( R.layout.item_group_over_view_rv_l, it.data ) { override fun convertView( - viewHolder: ViewHolder, position: Int, item: ProjectGroupModel.DataModel + viewHolder: ViewHolder, position: Int, item: DataModel ) { viewHolder.setText(R.id.groupNameView, item.groupId) .setText(R.id.totalDeviceNumView, item.totalDevice) @@ -96,43 +108,17 @@ } if (item.latGaode.isBlank() || item.lngGaode.isBlank()) { viewHolder.setText( - R.id.groupLocationView, - "经纬度异常,无法查看具体位置" + R.id.groupLocationView, "经纬度异常,无法查看具体位置" ) } else { - val point = LatLonPoint( - item.latGaode.toDouble(), item.lngGaode.toDouble() - ) - val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) - geocoderSearch.getFromLocationAsyn(queryParam) - geocoderSearch.setOnGeocodeSearchListener(object : - GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched( - result: RegeocodeResult?, rCode: Int - ) { - if (rCode == 1000) { - viewHolder.setText( - R.id.groupLocationView, - String.format("${result?.regeocodeAddress?.formatAddress}") - ) - } - } - - override fun onGeocodeSearched( - result: GeocodeResult?, rCode: Int - ) { - - } - }) + searchLocation(item, viewHolder) } } } binding.recyclerView.adapter = groupListAdapter groupListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, item: ProjectGroupModel.DataModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: DataModel) { requireContext().navigatePageTo(item.groupId) } }) @@ -141,7 +127,27 @@ } } - private fun editGroupName(item: ProjectGroupModel.DataModel) { + private fun searchLocation(item: DataModel, viewHolder: ViewHolder) { + val point = LatLonPoint(item.latGaode.toDouble(), item.lngGaode.toDouble()) + val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + viewHolder.setText( + R.id.groupLocationView, + String.format("${result?.regeocodeAddress?.formatAddress}") + ) + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } + + private fun editGroupName(item: DataModel) { AlertInputDialog.Builder() .setContext(requireContext()) .setTitle("提示") diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index f01859a..05ceeb0 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -75,7 +75,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0e14b09..101282b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index d507f87..3a1b260 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -13,11 +13,14 @@ import com.casic.smarttube.R import com.casic.smarttube.databinding.FragmentOverviewBinding import com.casic.smarttube.model.ProjectGroupModel +import com.casic.smarttube.model.ProjectGroupModel.DataModel import com.casic.smarttube.view.GroupDeviceActivity import com.casic.smarttube.vm.ProjectGroupViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.LoadState @@ -29,8 +32,9 @@ private val kTag = "OverviewFragment" private val geocoderSearch by lazy { GeocodeSearch(requireContext()) } + private val marginOffsets by lazy { 6.dp2px(requireContext()) } private lateinit var groupViewModel: ProjectGroupViewModel - private lateinit var groupListAdapter: NormalRecyclerAdapter + private lateinit var groupListAdapter: NormalRecyclerAdapter private var clickedPosition = 0 private var isRefresh = false @@ -45,12 +49,20 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets( + marginOffsets, marginOffsets shr 1, marginOffsets, marginOffsets shr 1 + ) + ) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] groupViewModel.groupData.observe(this) { if (it.code == 200) { bindRecyclerView(it) } } + groupViewModel.getProGroupList(requireContext()) + groupViewModel.changeGroupResultData.observe(this) { if (it.code == 200) { groupListAdapter.notifyItemChanged(clickedPosition) @@ -80,11 +92,11 @@ binding.emptyView.visibility = View.GONE binding.recyclerView.visibility = View.VISIBLE - groupListAdapter = object : NormalRecyclerAdapter( + groupListAdapter = object : NormalRecyclerAdapter( R.layout.item_group_over_view_rv_l, it.data ) { override fun convertView( - viewHolder: ViewHolder, position: Int, item: ProjectGroupModel.DataModel + viewHolder: ViewHolder, position: Int, item: DataModel ) { viewHolder.setText(R.id.groupNameView, item.groupId) .setText(R.id.totalDeviceNumView, item.totalDevice) @@ -96,43 +108,17 @@ } if (item.latGaode.isBlank() || item.lngGaode.isBlank()) { viewHolder.setText( - R.id.groupLocationView, - "经纬度异常,无法查看具体位置" + R.id.groupLocationView, "经纬度异常,无法查看具体位置" ) } else { - val point = LatLonPoint( - item.latGaode.toDouble(), item.lngGaode.toDouble() - ) - val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) - geocoderSearch.getFromLocationAsyn(queryParam) - geocoderSearch.setOnGeocodeSearchListener(object : - GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched( - result: RegeocodeResult?, rCode: Int - ) { - if (rCode == 1000) { - viewHolder.setText( - R.id.groupLocationView, - String.format("${result?.regeocodeAddress?.formatAddress}") - ) - } - } - - override fun onGeocodeSearched( - result: GeocodeResult?, rCode: Int - ) { - - } - }) + searchLocation(item, viewHolder) } } } binding.recyclerView.adapter = groupListAdapter groupListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, item: ProjectGroupModel.DataModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: DataModel) { requireContext().navigatePageTo(item.groupId) } }) @@ -141,7 +127,27 @@ } } - private fun editGroupName(item: ProjectGroupModel.DataModel) { + private fun searchLocation(item: DataModel, viewHolder: ViewHolder) { + val point = LatLonPoint(item.latGaode.toDouble(), item.lngGaode.toDouble()) + val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + viewHolder.setText( + R.id.groupLocationView, + String.format("${result?.regeocodeAddress?.formatAddress}") + ) + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } + + private fun editGroupName(item: DataModel) { AlertInputDialog.Builder() .setContext(requireContext()) .setTitle("提示") diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index f01859a..05ceeb0 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -75,7 +75,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index 2352eb9..71ffaf7 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -41,7 +41,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0e14b09..101282b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index d507f87..3a1b260 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -13,11 +13,14 @@ import com.casic.smarttube.R import com.casic.smarttube.databinding.FragmentOverviewBinding import com.casic.smarttube.model.ProjectGroupModel +import com.casic.smarttube.model.ProjectGroupModel.DataModel import com.casic.smarttube.view.GroupDeviceActivity import com.casic.smarttube.vm.ProjectGroupViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.LoadState @@ -29,8 +32,9 @@ private val kTag = "OverviewFragment" private val geocoderSearch by lazy { GeocodeSearch(requireContext()) } + private val marginOffsets by lazy { 6.dp2px(requireContext()) } private lateinit var groupViewModel: ProjectGroupViewModel - private lateinit var groupListAdapter: NormalRecyclerAdapter + private lateinit var groupListAdapter: NormalRecyclerAdapter private var clickedPosition = 0 private var isRefresh = false @@ -45,12 +49,20 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets( + marginOffsets, marginOffsets shr 1, marginOffsets, marginOffsets shr 1 + ) + ) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] groupViewModel.groupData.observe(this) { if (it.code == 200) { bindRecyclerView(it) } } + groupViewModel.getProGroupList(requireContext()) + groupViewModel.changeGroupResultData.observe(this) { if (it.code == 200) { groupListAdapter.notifyItemChanged(clickedPosition) @@ -80,11 +92,11 @@ binding.emptyView.visibility = View.GONE binding.recyclerView.visibility = View.VISIBLE - groupListAdapter = object : NormalRecyclerAdapter( + groupListAdapter = object : NormalRecyclerAdapter( R.layout.item_group_over_view_rv_l, it.data ) { override fun convertView( - viewHolder: ViewHolder, position: Int, item: ProjectGroupModel.DataModel + viewHolder: ViewHolder, position: Int, item: DataModel ) { viewHolder.setText(R.id.groupNameView, item.groupId) .setText(R.id.totalDeviceNumView, item.totalDevice) @@ -96,43 +108,17 @@ } if (item.latGaode.isBlank() || item.lngGaode.isBlank()) { viewHolder.setText( - R.id.groupLocationView, - "经纬度异常,无法查看具体位置" + R.id.groupLocationView, "经纬度异常,无法查看具体位置" ) } else { - val point = LatLonPoint( - item.latGaode.toDouble(), item.lngGaode.toDouble() - ) - val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) - geocoderSearch.getFromLocationAsyn(queryParam) - geocoderSearch.setOnGeocodeSearchListener(object : - GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched( - result: RegeocodeResult?, rCode: Int - ) { - if (rCode == 1000) { - viewHolder.setText( - R.id.groupLocationView, - String.format("${result?.regeocodeAddress?.formatAddress}") - ) - } - } - - override fun onGeocodeSearched( - result: GeocodeResult?, rCode: Int - ) { - - } - }) + searchLocation(item, viewHolder) } } } binding.recyclerView.adapter = groupListAdapter groupListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, item: ProjectGroupModel.DataModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: DataModel) { requireContext().navigatePageTo(item.groupId) } }) @@ -141,7 +127,27 @@ } } - private fun editGroupName(item: ProjectGroupModel.DataModel) { + private fun searchLocation(item: DataModel, viewHolder: ViewHolder) { + val point = LatLonPoint(item.latGaode.toDouble(), item.lngGaode.toDouble()) + val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + viewHolder.setText( + R.id.groupLocationView, + String.format("${result?.regeocodeAddress?.formatAddress}") + ) + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } + + private fun editGroupName(item: DataModel) { AlertInputDialog.Builder() .setContext(requireContext()) .setTitle("提示") diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index f01859a..05ceeb0 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -75,7 +75,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index 2352eb9..71ffaf7 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -41,7 +41,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index 2b64158..03265ad 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -38,7 +38,7 @@ private lateinit var deviceAdapter: DeviceListAdapter private val context = this private val easyPopupWindow by lazy { EasyPopupWindow(this) } - private val marginOffsets by lazy { 5.dp2px(this) } + private val marginOffsets by lazy { 6.dp2px(this) } private var dataRows: MutableList = ArrayList() private var page = 1 private var isRefresh = false @@ -52,7 +52,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() @@ -226,7 +226,8 @@ binding.recyclerView.layoutManager = linearLayoutManager binding.recyclerView.addItemDecoration( RecyclerViewItemOffsets( - marginOffsets, marginOffsets, marginOffsets, marginOffsets + marginOffsets, marginOffsets shr 1, + marginOffsets, marginOffsets shr 1 ) ) binding.recyclerView.adapter = deviceAdapter diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0e14b09..101282b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index d507f87..3a1b260 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -13,11 +13,14 @@ import com.casic.smarttube.R import com.casic.smarttube.databinding.FragmentOverviewBinding import com.casic.smarttube.model.ProjectGroupModel +import com.casic.smarttube.model.ProjectGroupModel.DataModel import com.casic.smarttube.view.GroupDeviceActivity import com.casic.smarttube.vm.ProjectGroupViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.LoadState @@ -29,8 +32,9 @@ private val kTag = "OverviewFragment" private val geocoderSearch by lazy { GeocodeSearch(requireContext()) } + private val marginOffsets by lazy { 6.dp2px(requireContext()) } private lateinit var groupViewModel: ProjectGroupViewModel - private lateinit var groupListAdapter: NormalRecyclerAdapter + private lateinit var groupListAdapter: NormalRecyclerAdapter private var clickedPosition = 0 private var isRefresh = false @@ -45,12 +49,20 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets( + marginOffsets, marginOffsets shr 1, marginOffsets, marginOffsets shr 1 + ) + ) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] groupViewModel.groupData.observe(this) { if (it.code == 200) { bindRecyclerView(it) } } + groupViewModel.getProGroupList(requireContext()) + groupViewModel.changeGroupResultData.observe(this) { if (it.code == 200) { groupListAdapter.notifyItemChanged(clickedPosition) @@ -80,11 +92,11 @@ binding.emptyView.visibility = View.GONE binding.recyclerView.visibility = View.VISIBLE - groupListAdapter = object : NormalRecyclerAdapter( + groupListAdapter = object : NormalRecyclerAdapter( R.layout.item_group_over_view_rv_l, it.data ) { override fun convertView( - viewHolder: ViewHolder, position: Int, item: ProjectGroupModel.DataModel + viewHolder: ViewHolder, position: Int, item: DataModel ) { viewHolder.setText(R.id.groupNameView, item.groupId) .setText(R.id.totalDeviceNumView, item.totalDevice) @@ -96,43 +108,17 @@ } if (item.latGaode.isBlank() || item.lngGaode.isBlank()) { viewHolder.setText( - R.id.groupLocationView, - "经纬度异常,无法查看具体位置" + R.id.groupLocationView, "经纬度异常,无法查看具体位置" ) } else { - val point = LatLonPoint( - item.latGaode.toDouble(), item.lngGaode.toDouble() - ) - val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) - geocoderSearch.getFromLocationAsyn(queryParam) - geocoderSearch.setOnGeocodeSearchListener(object : - GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched( - result: RegeocodeResult?, rCode: Int - ) { - if (rCode == 1000) { - viewHolder.setText( - R.id.groupLocationView, - String.format("${result?.regeocodeAddress?.formatAddress}") - ) - } - } - - override fun onGeocodeSearched( - result: GeocodeResult?, rCode: Int - ) { - - } - }) + searchLocation(item, viewHolder) } } } binding.recyclerView.adapter = groupListAdapter groupListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, item: ProjectGroupModel.DataModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: DataModel) { requireContext().navigatePageTo(item.groupId) } }) @@ -141,7 +127,27 @@ } } - private fun editGroupName(item: ProjectGroupModel.DataModel) { + private fun searchLocation(item: DataModel, viewHolder: ViewHolder) { + val point = LatLonPoint(item.latGaode.toDouble(), item.lngGaode.toDouble()) + val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + viewHolder.setText( + R.id.groupLocationView, + String.format("${result?.regeocodeAddress?.formatAddress}") + ) + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } + + private fun editGroupName(item: DataModel) { AlertInputDialog.Builder() .setContext(requireContext()) .setTitle("提示") diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index f01859a..05ceeb0 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -75,7 +75,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index 2352eb9..71ffaf7 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -41,7 +41,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index 2b64158..03265ad 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -38,7 +38,7 @@ private lateinit var deviceAdapter: DeviceListAdapter private val context = this private val easyPopupWindow by lazy { EasyPopupWindow(this) } - private val marginOffsets by lazy { 5.dp2px(this) } + private val marginOffsets by lazy { 6.dp2px(this) } private var dataRows: MutableList = ArrayList() private var page = 1 private var isRefresh = false @@ -52,7 +52,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() @@ -226,7 +226,8 @@ binding.recyclerView.layoutManager = linearLayoutManager binding.recyclerView.addItemDecoration( RecyclerViewItemOffsets( - marginOffsets, marginOffsets, marginOffsets, marginOffsets + marginOffsets, marginOffsets shr 1, + marginOffsets, marginOffsets shr 1 ) ) binding.recyclerView.adapter = deviceAdapter diff --git a/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt b/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt index fc20978..fb28d46 100644 --- a/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt @@ -14,7 +14,7 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) { - startSplashScreenActivity() + startLoginActivity() } else { EasyPermissions.requestPermissions( this@PermissionActivity, @@ -25,11 +25,11 @@ } } - private fun startSplashScreenActivity() { + private fun startLoginActivity() { //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) NaviSetting.updatePrivacyAgree(this, true) - navigatePageTo() + navigatePageTo() finish() } @@ -41,7 +41,7 @@ } override fun onPermissionsGranted(requestCode: Int, perms: List) { - startSplashScreenActivity() + startLoginActivity() } override fun onPermissionsDenied(requestCode: Int, perms: List) { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0e14b09..101282b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index d507f87..3a1b260 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -13,11 +13,14 @@ import com.casic.smarttube.R import com.casic.smarttube.databinding.FragmentOverviewBinding import com.casic.smarttube.model.ProjectGroupModel +import com.casic.smarttube.model.ProjectGroupModel.DataModel import com.casic.smarttube.view.GroupDeviceActivity import com.casic.smarttube.vm.ProjectGroupViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.LoadState @@ -29,8 +32,9 @@ private val kTag = "OverviewFragment" private val geocoderSearch by lazy { GeocodeSearch(requireContext()) } + private val marginOffsets by lazy { 6.dp2px(requireContext()) } private lateinit var groupViewModel: ProjectGroupViewModel - private lateinit var groupListAdapter: NormalRecyclerAdapter + private lateinit var groupListAdapter: NormalRecyclerAdapter private var clickedPosition = 0 private var isRefresh = false @@ -45,12 +49,20 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets( + marginOffsets, marginOffsets shr 1, marginOffsets, marginOffsets shr 1 + ) + ) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] groupViewModel.groupData.observe(this) { if (it.code == 200) { bindRecyclerView(it) } } + groupViewModel.getProGroupList(requireContext()) + groupViewModel.changeGroupResultData.observe(this) { if (it.code == 200) { groupListAdapter.notifyItemChanged(clickedPosition) @@ -80,11 +92,11 @@ binding.emptyView.visibility = View.GONE binding.recyclerView.visibility = View.VISIBLE - groupListAdapter = object : NormalRecyclerAdapter( + groupListAdapter = object : NormalRecyclerAdapter( R.layout.item_group_over_view_rv_l, it.data ) { override fun convertView( - viewHolder: ViewHolder, position: Int, item: ProjectGroupModel.DataModel + viewHolder: ViewHolder, position: Int, item: DataModel ) { viewHolder.setText(R.id.groupNameView, item.groupId) .setText(R.id.totalDeviceNumView, item.totalDevice) @@ -96,43 +108,17 @@ } if (item.latGaode.isBlank() || item.lngGaode.isBlank()) { viewHolder.setText( - R.id.groupLocationView, - "经纬度异常,无法查看具体位置" + R.id.groupLocationView, "经纬度异常,无法查看具体位置" ) } else { - val point = LatLonPoint( - item.latGaode.toDouble(), item.lngGaode.toDouble() - ) - val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) - geocoderSearch.getFromLocationAsyn(queryParam) - geocoderSearch.setOnGeocodeSearchListener(object : - GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched( - result: RegeocodeResult?, rCode: Int - ) { - if (rCode == 1000) { - viewHolder.setText( - R.id.groupLocationView, - String.format("${result?.regeocodeAddress?.formatAddress}") - ) - } - } - - override fun onGeocodeSearched( - result: GeocodeResult?, rCode: Int - ) { - - } - }) + searchLocation(item, viewHolder) } } } binding.recyclerView.adapter = groupListAdapter groupListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, item: ProjectGroupModel.DataModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: DataModel) { requireContext().navigatePageTo(item.groupId) } }) @@ -141,7 +127,27 @@ } } - private fun editGroupName(item: ProjectGroupModel.DataModel) { + private fun searchLocation(item: DataModel, viewHolder: ViewHolder) { + val point = LatLonPoint(item.latGaode.toDouble(), item.lngGaode.toDouble()) + val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + viewHolder.setText( + R.id.groupLocationView, + String.format("${result?.regeocodeAddress?.formatAddress}") + ) + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } + + private fun editGroupName(item: DataModel) { AlertInputDialog.Builder() .setContext(requireContext()) .setTitle("提示") diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index f01859a..05ceeb0 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -75,7 +75,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index 2352eb9..71ffaf7 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -41,7 +41,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index 2b64158..03265ad 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -38,7 +38,7 @@ private lateinit var deviceAdapter: DeviceListAdapter private val context = this private val easyPopupWindow by lazy { EasyPopupWindow(this) } - private val marginOffsets by lazy { 5.dp2px(this) } + private val marginOffsets by lazy { 6.dp2px(this) } private var dataRows: MutableList = ArrayList() private var page = 1 private var isRefresh = false @@ -52,7 +52,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() @@ -226,7 +226,8 @@ binding.recyclerView.layoutManager = linearLayoutManager binding.recyclerView.addItemDecoration( RecyclerViewItemOffsets( - marginOffsets, marginOffsets, marginOffsets, marginOffsets + marginOffsets, marginOffsets shr 1, + marginOffsets, marginOffsets shr 1 ) ) binding.recyclerView.adapter = deviceAdapter diff --git a/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt b/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt index fc20978..fb28d46 100644 --- a/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt @@ -14,7 +14,7 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) { - startSplashScreenActivity() + startLoginActivity() } else { EasyPermissions.requestPermissions( this@PermissionActivity, @@ -25,11 +25,11 @@ } } - private fun startSplashScreenActivity() { + private fun startLoginActivity() { //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) NaviSetting.updatePrivacyAgree(this, true) - navigatePageTo() + navigatePageTo() finish() } @@ -41,7 +41,7 @@ } override fun onPermissionsGranted(requestCode: Int, perms: List) { - startSplashScreenActivity() + startLoginActivity() } override fun onPermissionsDenied(requestCode: Int, perms: List) { diff --git a/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt b/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt index 6570d2d..1d918f7 100644 --- a/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt @@ -31,7 +31,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.text = "手动选点" binding.leftBackView.setOnClickListener { finish() } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0e14b09..101282b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index d507f87..3a1b260 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -13,11 +13,14 @@ import com.casic.smarttube.R import com.casic.smarttube.databinding.FragmentOverviewBinding import com.casic.smarttube.model.ProjectGroupModel +import com.casic.smarttube.model.ProjectGroupModel.DataModel import com.casic.smarttube.view.GroupDeviceActivity import com.casic.smarttube.vm.ProjectGroupViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.LoadState @@ -29,8 +32,9 @@ private val kTag = "OverviewFragment" private val geocoderSearch by lazy { GeocodeSearch(requireContext()) } + private val marginOffsets by lazy { 6.dp2px(requireContext()) } private lateinit var groupViewModel: ProjectGroupViewModel - private lateinit var groupListAdapter: NormalRecyclerAdapter + private lateinit var groupListAdapter: NormalRecyclerAdapter private var clickedPosition = 0 private var isRefresh = false @@ -45,12 +49,20 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets( + marginOffsets, marginOffsets shr 1, marginOffsets, marginOffsets shr 1 + ) + ) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] groupViewModel.groupData.observe(this) { if (it.code == 200) { bindRecyclerView(it) } } + groupViewModel.getProGroupList(requireContext()) + groupViewModel.changeGroupResultData.observe(this) { if (it.code == 200) { groupListAdapter.notifyItemChanged(clickedPosition) @@ -80,11 +92,11 @@ binding.emptyView.visibility = View.GONE binding.recyclerView.visibility = View.VISIBLE - groupListAdapter = object : NormalRecyclerAdapter( + groupListAdapter = object : NormalRecyclerAdapter( R.layout.item_group_over_view_rv_l, it.data ) { override fun convertView( - viewHolder: ViewHolder, position: Int, item: ProjectGroupModel.DataModel + viewHolder: ViewHolder, position: Int, item: DataModel ) { viewHolder.setText(R.id.groupNameView, item.groupId) .setText(R.id.totalDeviceNumView, item.totalDevice) @@ -96,43 +108,17 @@ } if (item.latGaode.isBlank() || item.lngGaode.isBlank()) { viewHolder.setText( - R.id.groupLocationView, - "经纬度异常,无法查看具体位置" + R.id.groupLocationView, "经纬度异常,无法查看具体位置" ) } else { - val point = LatLonPoint( - item.latGaode.toDouble(), item.lngGaode.toDouble() - ) - val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) - geocoderSearch.getFromLocationAsyn(queryParam) - geocoderSearch.setOnGeocodeSearchListener(object : - GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched( - result: RegeocodeResult?, rCode: Int - ) { - if (rCode == 1000) { - viewHolder.setText( - R.id.groupLocationView, - String.format("${result?.regeocodeAddress?.formatAddress}") - ) - } - } - - override fun onGeocodeSearched( - result: GeocodeResult?, rCode: Int - ) { - - } - }) + searchLocation(item, viewHolder) } } } binding.recyclerView.adapter = groupListAdapter groupListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, item: ProjectGroupModel.DataModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: DataModel) { requireContext().navigatePageTo(item.groupId) } }) @@ -141,7 +127,27 @@ } } - private fun editGroupName(item: ProjectGroupModel.DataModel) { + private fun searchLocation(item: DataModel, viewHolder: ViewHolder) { + val point = LatLonPoint(item.latGaode.toDouble(), item.lngGaode.toDouble()) + val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + viewHolder.setText( + R.id.groupLocationView, + String.format("${result?.regeocodeAddress?.formatAddress}") + ) + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } + + private fun editGroupName(item: DataModel) { AlertInputDialog.Builder() .setContext(requireContext()) .setTitle("提示") diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index f01859a..05ceeb0 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -75,7 +75,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index 2352eb9..71ffaf7 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -41,7 +41,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index 2b64158..03265ad 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -38,7 +38,7 @@ private lateinit var deviceAdapter: DeviceListAdapter private val context = this private val easyPopupWindow by lazy { EasyPopupWindow(this) } - private val marginOffsets by lazy { 5.dp2px(this) } + private val marginOffsets by lazy { 6.dp2px(this) } private var dataRows: MutableList = ArrayList() private var page = 1 private var isRefresh = false @@ -52,7 +52,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() @@ -226,7 +226,8 @@ binding.recyclerView.layoutManager = linearLayoutManager binding.recyclerView.addItemDecoration( RecyclerViewItemOffsets( - marginOffsets, marginOffsets, marginOffsets, marginOffsets + marginOffsets, marginOffsets shr 1, + marginOffsets, marginOffsets shr 1 ) ) binding.recyclerView.adapter = deviceAdapter diff --git a/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt b/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt index fc20978..fb28d46 100644 --- a/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt @@ -14,7 +14,7 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) { - startSplashScreenActivity() + startLoginActivity() } else { EasyPermissions.requestPermissions( this@PermissionActivity, @@ -25,11 +25,11 @@ } } - private fun startSplashScreenActivity() { + private fun startLoginActivity() { //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) NaviSetting.updatePrivacyAgree(this, true) - navigatePageTo() + navigatePageTo() finish() } @@ -41,7 +41,7 @@ } override fun onPermissionsGranted(requestCode: Int, perms: List) { - startSplashScreenActivity() + startLoginActivity() } override fun onPermissionsDenied(requestCode: Int, perms: List) { diff --git a/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt b/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt index 6570d2d..1d918f7 100644 --- a/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt @@ -31,7 +31,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.text = "手动选点" binding.leftBackView.setOnClickListener { finish() } } diff --git a/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt b/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt deleted file mode 100644 index 91e8e64..0000000 --- a/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.smarttube.view - -import android.annotation.SuppressLint -import android.os.Bundle -import android.os.CountDownTimer -import androidx.lifecycle.ViewModelProvider -import com.casic.smarttube.databinding.ActivitySplashBinding -import com.casic.smarttube.vm.UserViewModel -import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.ActivityStackManager -import com.pengxh.kt.lite.utils.LoadState - -@SuppressLint("CustomSplashScreen") -class SplashScreenActivity : KotlinBaseActivity() { - - private lateinit var userDetailViewModel: UserViewModel - - override fun initViewBinding(): ActivitySplashBinding { - return ActivitySplashBinding.inflate(layoutInflater) - } - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - ActivityStackManager.addActivity(this) - userDetailViewModel = ViewModelProvider(this)[UserViewModel::class.java] - } - - override fun observeRequestState() { - userDetailViewModel.loadState.observe(this) { - when (it) { - LoadState.Success -> navigatePageTo() - else -> navigatePageTo() - } - finish() - } - } - - override fun initEvent() { - countDownTimer.start() - } - - private val countDownTimer = object : CountDownTimer(1000, 500) { - override fun onFinish() { - userDetailViewModel.getUserDetail() - } - - override fun onTick(millisUntilFinished: Long) { - - } - } -} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0e14b09..101282b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index d507f87..3a1b260 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -13,11 +13,14 @@ import com.casic.smarttube.R import com.casic.smarttube.databinding.FragmentOverviewBinding import com.casic.smarttube.model.ProjectGroupModel +import com.casic.smarttube.model.ProjectGroupModel.DataModel import com.casic.smarttube.view.GroupDeviceActivity import com.casic.smarttube.vm.ProjectGroupViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.LoadState @@ -29,8 +32,9 @@ private val kTag = "OverviewFragment" private val geocoderSearch by lazy { GeocodeSearch(requireContext()) } + private val marginOffsets by lazy { 6.dp2px(requireContext()) } private lateinit var groupViewModel: ProjectGroupViewModel - private lateinit var groupListAdapter: NormalRecyclerAdapter + private lateinit var groupListAdapter: NormalRecyclerAdapter private var clickedPosition = 0 private var isRefresh = false @@ -45,12 +49,20 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets( + marginOffsets, marginOffsets shr 1, marginOffsets, marginOffsets shr 1 + ) + ) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] groupViewModel.groupData.observe(this) { if (it.code == 200) { bindRecyclerView(it) } } + groupViewModel.getProGroupList(requireContext()) + groupViewModel.changeGroupResultData.observe(this) { if (it.code == 200) { groupListAdapter.notifyItemChanged(clickedPosition) @@ -80,11 +92,11 @@ binding.emptyView.visibility = View.GONE binding.recyclerView.visibility = View.VISIBLE - groupListAdapter = object : NormalRecyclerAdapter( + groupListAdapter = object : NormalRecyclerAdapter( R.layout.item_group_over_view_rv_l, it.data ) { override fun convertView( - viewHolder: ViewHolder, position: Int, item: ProjectGroupModel.DataModel + viewHolder: ViewHolder, position: Int, item: DataModel ) { viewHolder.setText(R.id.groupNameView, item.groupId) .setText(R.id.totalDeviceNumView, item.totalDevice) @@ -96,43 +108,17 @@ } if (item.latGaode.isBlank() || item.lngGaode.isBlank()) { viewHolder.setText( - R.id.groupLocationView, - "经纬度异常,无法查看具体位置" + R.id.groupLocationView, "经纬度异常,无法查看具体位置" ) } else { - val point = LatLonPoint( - item.latGaode.toDouble(), item.lngGaode.toDouble() - ) - val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) - geocoderSearch.getFromLocationAsyn(queryParam) - geocoderSearch.setOnGeocodeSearchListener(object : - GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched( - result: RegeocodeResult?, rCode: Int - ) { - if (rCode == 1000) { - viewHolder.setText( - R.id.groupLocationView, - String.format("${result?.regeocodeAddress?.formatAddress}") - ) - } - } - - override fun onGeocodeSearched( - result: GeocodeResult?, rCode: Int - ) { - - } - }) + searchLocation(item, viewHolder) } } } binding.recyclerView.adapter = groupListAdapter groupListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, item: ProjectGroupModel.DataModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: DataModel) { requireContext().navigatePageTo(item.groupId) } }) @@ -141,7 +127,27 @@ } } - private fun editGroupName(item: ProjectGroupModel.DataModel) { + private fun searchLocation(item: DataModel, viewHolder: ViewHolder) { + val point = LatLonPoint(item.latGaode.toDouble(), item.lngGaode.toDouble()) + val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + viewHolder.setText( + R.id.groupLocationView, + String.format("${result?.regeocodeAddress?.formatAddress}") + ) + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } + + private fun editGroupName(item: DataModel) { AlertInputDialog.Builder() .setContext(requireContext()) .setTitle("提示") diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index f01859a..05ceeb0 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -75,7 +75,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index 2352eb9..71ffaf7 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -41,7 +41,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index 2b64158..03265ad 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -38,7 +38,7 @@ private lateinit var deviceAdapter: DeviceListAdapter private val context = this private val easyPopupWindow by lazy { EasyPopupWindow(this) } - private val marginOffsets by lazy { 5.dp2px(this) } + private val marginOffsets by lazy { 6.dp2px(this) } private var dataRows: MutableList = ArrayList() private var page = 1 private var isRefresh = false @@ -52,7 +52,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() @@ -226,7 +226,8 @@ binding.recyclerView.layoutManager = linearLayoutManager binding.recyclerView.addItemDecoration( RecyclerViewItemOffsets( - marginOffsets, marginOffsets, marginOffsets, marginOffsets + marginOffsets, marginOffsets shr 1, + marginOffsets, marginOffsets shr 1 ) ) binding.recyclerView.adapter = deviceAdapter diff --git a/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt b/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt index fc20978..fb28d46 100644 --- a/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt @@ -14,7 +14,7 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) { - startSplashScreenActivity() + startLoginActivity() } else { EasyPermissions.requestPermissions( this@PermissionActivity, @@ -25,11 +25,11 @@ } } - private fun startSplashScreenActivity() { + private fun startLoginActivity() { //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) NaviSetting.updatePrivacyAgree(this, true) - navigatePageTo() + navigatePageTo() finish() } @@ -41,7 +41,7 @@ } override fun onPermissionsGranted(requestCode: Int, perms: List) { - startSplashScreenActivity() + startLoginActivity() } override fun onPermissionsDenied(requestCode: Int, perms: List) { diff --git a/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt b/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt index 6570d2d..1d918f7 100644 --- a/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt @@ -31,7 +31,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.text = "手动选点" binding.leftBackView.setOnClickListener { finish() } } diff --git a/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt b/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt deleted file mode 100644 index 91e8e64..0000000 --- a/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.smarttube.view - -import android.annotation.SuppressLint -import android.os.Bundle -import android.os.CountDownTimer -import androidx.lifecycle.ViewModelProvider -import com.casic.smarttube.databinding.ActivitySplashBinding -import com.casic.smarttube.vm.UserViewModel -import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.ActivityStackManager -import com.pengxh.kt.lite.utils.LoadState - -@SuppressLint("CustomSplashScreen") -class SplashScreenActivity : KotlinBaseActivity() { - - private lateinit var userDetailViewModel: UserViewModel - - override fun initViewBinding(): ActivitySplashBinding { - return ActivitySplashBinding.inflate(layoutInflater) - } - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - ActivityStackManager.addActivity(this) - userDetailViewModel = ViewModelProvider(this)[UserViewModel::class.java] - } - - override fun observeRequestState() { - userDetailViewModel.loadState.observe(this) { - when (it) { - LoadState.Success -> navigatePageTo() - else -> navigatePageTo() - } - finish() - } - } - - override fun initEvent() { - countDownTimer.start() - } - - private val countDownTimer = object : CountDownTimer(1000, 500) { - override fun onFinish() { - userDetailViewModel.getUserDetail() - } - - override fun onTick(millisUntilFinished: Long) { - - } - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml deleted file mode 100644 index 0ce1ac3..0000000 --- a/app/src/main/res/layout/activity_splash.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0e14b09..101282b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,7 +53,6 @@ - diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index d507f87..3a1b260 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -13,11 +13,14 @@ import com.casic.smarttube.R import com.casic.smarttube.databinding.FragmentOverviewBinding import com.casic.smarttube.model.ProjectGroupModel +import com.casic.smarttube.model.ProjectGroupModel.DataModel import com.casic.smarttube.view.GroupDeviceActivity import com.casic.smarttube.vm.ProjectGroupViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.divider.RecyclerViewItemOffsets +import com.pengxh.kt.lite.extensions.dp2px import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.LoadState @@ -29,8 +32,9 @@ private val kTag = "OverviewFragment" private val geocoderSearch by lazy { GeocodeSearch(requireContext()) } + private val marginOffsets by lazy { 6.dp2px(requireContext()) } private lateinit var groupViewModel: ProjectGroupViewModel - private lateinit var groupListAdapter: NormalRecyclerAdapter + private lateinit var groupListAdapter: NormalRecyclerAdapter private var clickedPosition = 0 private var isRefresh = false @@ -45,12 +49,20 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { + binding.recyclerView.addItemDecoration( + RecyclerViewItemOffsets( + marginOffsets, marginOffsets shr 1, marginOffsets, marginOffsets shr 1 + ) + ) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] groupViewModel.groupData.observe(this) { if (it.code == 200) { bindRecyclerView(it) } } + groupViewModel.getProGroupList(requireContext()) + groupViewModel.changeGroupResultData.observe(this) { if (it.code == 200) { groupListAdapter.notifyItemChanged(clickedPosition) @@ -80,11 +92,11 @@ binding.emptyView.visibility = View.GONE binding.recyclerView.visibility = View.VISIBLE - groupListAdapter = object : NormalRecyclerAdapter( + groupListAdapter = object : NormalRecyclerAdapter( R.layout.item_group_over_view_rv_l, it.data ) { override fun convertView( - viewHolder: ViewHolder, position: Int, item: ProjectGroupModel.DataModel + viewHolder: ViewHolder, position: Int, item: DataModel ) { viewHolder.setText(R.id.groupNameView, item.groupId) .setText(R.id.totalDeviceNumView, item.totalDevice) @@ -96,43 +108,17 @@ } if (item.latGaode.isBlank() || item.lngGaode.isBlank()) { viewHolder.setText( - R.id.groupLocationView, - "经纬度异常,无法查看具体位置" + R.id.groupLocationView, "经纬度异常,无法查看具体位置" ) } else { - val point = LatLonPoint( - item.latGaode.toDouble(), item.lngGaode.toDouble() - ) - val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) - geocoderSearch.getFromLocationAsyn(queryParam) - geocoderSearch.setOnGeocodeSearchListener(object : - GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched( - result: RegeocodeResult?, rCode: Int - ) { - if (rCode == 1000) { - viewHolder.setText( - R.id.groupLocationView, - String.format("${result?.regeocodeAddress?.formatAddress}") - ) - } - } - - override fun onGeocodeSearched( - result: GeocodeResult?, rCode: Int - ) { - - } - }) + searchLocation(item, viewHolder) } } } binding.recyclerView.adapter = groupListAdapter groupListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, item: ProjectGroupModel.DataModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, item: DataModel) { requireContext().navigatePageTo(item.groupId) } }) @@ -141,7 +127,27 @@ } } - private fun editGroupName(item: ProjectGroupModel.DataModel) { + private fun searchLocation(item: DataModel, viewHolder: ViewHolder) { + val point = LatLonPoint(item.latGaode.toDouble(), item.lngGaode.toDouble()) + val queryParam = RegeocodeQuery(point, 200f, GeocodeSearch.AMAP) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + viewHolder.setText( + R.id.groupLocationView, + String.format("${result?.regeocodeAddress?.formatAddress}") + ) + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } + + private fun editGroupName(item: DataModel) { AlertInputDialog.Builder() .setContext(requireContext()) .setTitle("提示") diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index f01859a..05ceeb0 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -75,7 +75,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index 2352eb9..71ffaf7 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -41,7 +41,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index 2b64158..03265ad 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -38,7 +38,7 @@ private lateinit var deviceAdapter: DeviceListAdapter private val context = this private val easyPopupWindow by lazy { EasyPopupWindow(this) } - private val marginOffsets by lazy { 5.dp2px(this) } + private val marginOffsets by lazy { 6.dp2px(this) } private var dataRows: MutableList = ArrayList() private var page = 1 private var isRefresh = false @@ -52,7 +52,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { override fun onLeftClick() { finish() @@ -226,7 +226,8 @@ binding.recyclerView.layoutManager = linearLayoutManager binding.recyclerView.addItemDecoration( RecyclerViewItemOffsets( - marginOffsets, marginOffsets, marginOffsets, marginOffsets + marginOffsets, marginOffsets shr 1, + marginOffsets, marginOffsets shr 1 ) ) binding.recyclerView.adapter = deviceAdapter diff --git a/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt b/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt index fc20978..fb28d46 100644 --- a/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/PermissionActivity.kt @@ -14,7 +14,7 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) { - startSplashScreenActivity() + startLoginActivity() } else { EasyPermissions.requestPermissions( this@PermissionActivity, @@ -25,11 +25,11 @@ } } - private fun startSplashScreenActivity() { + private fun startLoginActivity() { //先把导航隐私政策声明,后面导航会用到 NaviSetting.updatePrivacyShow(this, true, true) NaviSetting.updatePrivacyAgree(this, true) - navigatePageTo() + navigatePageTo() finish() } @@ -41,7 +41,7 @@ } override fun onPermissionsGranted(requestCode: Int, perms: List) { - startSplashScreenActivity() + startLoginActivity() } override fun onPermissionsDenied(requestCode: Int, perms: List) { diff --git a/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt b/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt index 6570d2d..1d918f7 100644 --- a/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/SelectLocationActivity.kt @@ -31,7 +31,7 @@ } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.mainThemeColor) + binding.rootView.initImmersionBar(this, false, R.color.mainThemeColor) binding.titleView.text = "手动选点" binding.leftBackView.setOnClickListener { finish() } } diff --git a/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt b/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt deleted file mode 100644 index 91e8e64..0000000 --- a/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt +++ /dev/null @@ -1,56 +0,0 @@ -package com.casic.smarttube.view - -import android.annotation.SuppressLint -import android.os.Bundle -import android.os.CountDownTimer -import androidx.lifecycle.ViewModelProvider -import com.casic.smarttube.databinding.ActivitySplashBinding -import com.casic.smarttube.vm.UserViewModel -import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.utils.ActivityStackManager -import com.pengxh.kt.lite.utils.LoadState - -@SuppressLint("CustomSplashScreen") -class SplashScreenActivity : KotlinBaseActivity() { - - private lateinit var userDetailViewModel: UserViewModel - - override fun initViewBinding(): ActivitySplashBinding { - return ActivitySplashBinding.inflate(layoutInflater) - } - - override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - ActivityStackManager.addActivity(this) - userDetailViewModel = ViewModelProvider(this)[UserViewModel::class.java] - } - - override fun observeRequestState() { - userDetailViewModel.loadState.observe(this) { - when (it) { - LoadState.Success -> navigatePageTo() - else -> navigatePageTo() - } - finish() - } - } - - override fun initEvent() { - countDownTimer.start() - } - - private val countDownTimer = object : CountDownTimer(1000, 500) { - override fun onFinish() { - userDetailViewModel.getUserDetail() - } - - override fun onTick(millisUntilFinished: Long) { - - } - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml deleted file mode 100644 index 0ce1ac3..0000000 --- a/app/src/main/res/layout/activity_splash.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_device_rv_l.xml b/app/src/main/res/layout/item_device_rv_l.xml index 66114f8..e5f361f 100644 --- a/app/src/main/res/layout/item_device_rv_l.xml +++ b/app/src/main/res/layout/item_device_rv_l.xml @@ -4,7 +4,8 @@ android:layout_height="wrap_content" android:background="@drawable/bg_solid_layout_white_radius_10" android:orientation="vertical" - android:padding="@dimen/dp_5"> + android:paddingHorizontal="@dimen/dp_7" + android:paddingVertical="@dimen/dp_3"> - - -