中建365-二期开发-商城开发/电子围栏
@ -0,0 +1,16 @@
|
|||||||
|
package com.xty.base.model
|
||||||
|
|
||||||
|
import android.os.Parcelable
|
||||||
|
import kotlinx.android.parcel.Parcelize
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
|
data class ChooseAddressBean(
|
||||||
|
var id:Long,
|
||||||
|
var username:String,
|
||||||
|
var mobile:String,
|
||||||
|
var province:String,
|
||||||
|
var city:String,
|
||||||
|
var district:String,
|
||||||
|
var address:String,
|
||||||
|
var is_default:Int
|
||||||
|
):Parcelable
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.xty.base.model
|
||||||
|
|
||||||
|
import android.os.Parcelable
|
||||||
|
import io.reactivex.observers.DefaultObserver
|
||||||
|
import kotlinx.android.parcel.Parcelize
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
|
data class ChooseCouponBean(
|
||||||
|
var id:Long,
|
||||||
|
var card_type:Int,
|
||||||
|
var status:Int,
|
||||||
|
var is_share:Int,
|
||||||
|
var share_user_id:Long,
|
||||||
|
var share_user_name:String,
|
||||||
|
var as_amount:Double,
|
||||||
|
var discount:Double,
|
||||||
|
var card_name:String
|
||||||
|
) : Parcelable {
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package com.xty.base.model
|
||||||
|
|
||||||
|
data class OpenWXBean(
|
||||||
|
var path:String,
|
||||||
|
var id:String,
|
||||||
|
var type:Int
|
||||||
|
) {
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
package com.xty.common.event
|
||||||
|
|
||||||
|
class BtFenceSettingSuccessEvent {
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.xty.common.util
|
||||||
|
|
||||||
|
import java.math.BigDecimal
|
||||||
|
|
||||||
|
object NumUtils {
|
||||||
|
|
||||||
|
fun divide(valueOne: Int, valueTwo: Int, scale: Int): Double {
|
||||||
|
if (scale < 0) {
|
||||||
|
throw IllegalArgumentException("The scale must be a positive integer or zero")
|
||||||
|
}
|
||||||
|
val b1 = BigDecimal(java.lang.Double.toString(valueOne.toDouble()))
|
||||||
|
val b2 = BigDecimal(java.lang.Double.toString(valueTwo.toDouble()))
|
||||||
|
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).toDouble()
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:id="@android:id/background">
|
||||||
|
<shape>
|
||||||
|
<solid android:color="#EEEEEE" />
|
||||||
|
<corners android:radius="3dp"/>
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
<item android:id="@android:id/secondaryProgress">
|
||||||
|
<clip>
|
||||||
|
<shape>
|
||||||
|
<solid android:color="#EEEEEE" />
|
||||||
|
<corners android:radius="3dp"/>
|
||||||
|
</shape>
|
||||||
|
</clip>
|
||||||
|
</item>
|
||||||
|
<item android:id="@android:id/progress">
|
||||||
|
<clip>
|
||||||
|
<shape>
|
||||||
|
<solid android:color="#02C191" />
|
||||||
|
<corners android:radius="3dp"/>
|
||||||
|
</shape>
|
||||||
|
</clip>
|
||||||
|
</item>
|
||||||
|
</layer-list>
|
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<solid android:color="@color/col_C53"/>
|
||||||
|
<stroke android:width="@dimen/dp_1" android:color="@color/white"/>
|
||||||
|
<corners android:radius="@dimen/dp_4"/>
|
||||||
|
|
||||||
|
</shape>
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<solid android:color="@color/col_D42"/>
|
||||||
|
<stroke android:width="@dimen/dp_1" android:color="@color/white"/>
|
||||||
|
<corners android:radius="@dimen/dp_4"/>
|
||||||
|
</shape>
|
Before Width: | Height: | Size: 997 B After Width: | Height: | Size: 997 B |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.4 KiB |
@ -0,0 +1,321 @@
|
|||||||
|
package com.zj365.mime.act.electronicfence
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
|
import android.graphics.Color
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.View
|
||||||
|
import android.widget.SeekBar
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
import com.alibaba.android.arouter.facade.annotation.Route
|
||||||
|
import com.amap.api.maps.AMap
|
||||||
|
import com.amap.api.maps.AMapOptions
|
||||||
|
import com.amap.api.maps.CameraUpdateFactory
|
||||||
|
import com.amap.api.maps.model.BitmapDescriptorFactory
|
||||||
|
import com.amap.api.maps.model.CameraPosition
|
||||||
|
import com.amap.api.maps.model.CircleOptions
|
||||||
|
import com.amap.api.maps.model.LatLng
|
||||||
|
import com.amap.api.maps.model.MarkerOptions
|
||||||
|
import com.amap.api.maps.model.MyLocationStyle
|
||||||
|
import com.amap.api.services.core.PoiItem
|
||||||
|
import com.xty.base.act.BaseVmAct
|
||||||
|
import com.xty.common.arouter.ARouterUrl
|
||||||
|
import com.xty.common.arouter.RouteManager
|
||||||
|
import com.xty.common.event.BtFenceSettingSuccessEvent
|
||||||
|
import com.xty.network.model.EtFenceListBean
|
||||||
|
import com.zj365.mime.R
|
||||||
|
import com.zj365.mime.adapter.ElectronicFenceAdapter
|
||||||
|
import com.zj365.mime.databinding.ActivityElectronicFenceSettingBinding
|
||||||
|
import com.zj365.mime.vm.ElectronicFenceSettingVm
|
||||||
|
import org.greenrobot.eventbus.EventBus
|
||||||
|
|
||||||
|
@Route(path = ARouterUrl.ELECTRONIC_ADD_MODIFY_ACT)
|
||||||
|
class ElectronicAddOrModifyAct : BaseVmAct<ElectronicFenceSettingVm>() {
|
||||||
|
val binding by lazy { ActivityElectronicFenceSettingBinding.inflate(layoutInflater) }
|
||||||
|
|
||||||
|
val mAdapter by lazy { ElectronicFenceAdapter() }
|
||||||
|
|
||||||
|
var type: Int = 0 //0 列表页 1 设置页 2 修改已设计的电子围栏
|
||||||
|
|
||||||
|
private var aMap: AMap? = null
|
||||||
|
|
||||||
|
var poiItem: PoiItem? = null
|
||||||
|
|
||||||
|
var settingType :Int =2 // 1-禁入 2-禁出
|
||||||
|
|
||||||
|
var radius:Int = 500
|
||||||
|
|
||||||
|
var title:String = ""
|
||||||
|
|
||||||
|
var latitude:Double = 0.00
|
||||||
|
var longitude:Double = 0.00
|
||||||
|
|
||||||
|
var markerOptionsList = ArrayList<MarkerOptions>()
|
||||||
|
|
||||||
|
var bean: EtFenceListBean.EtFenceChildBean? = null
|
||||||
|
|
||||||
|
|
||||||
|
override fun liveObserver() {
|
||||||
|
mViewModel.addOrDeleteLiveData.observe(this){
|
||||||
|
EventBus.getDefault().post(BtFenceSettingSuccessEvent())
|
||||||
|
finish()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun initView() {
|
||||||
|
super.initView()
|
||||||
|
statusBar(binding.title.mView)
|
||||||
|
binding.title.mTvTitle.text = "电子围栏设置"
|
||||||
|
binding.title.mIvBack.setOnClickListener {
|
||||||
|
finish()
|
||||||
|
}
|
||||||
|
aMap = binding.map.map
|
||||||
|
|
||||||
|
initLocation()
|
||||||
|
|
||||||
|
if (intent.hasExtra("type")){
|
||||||
|
type = intent.getIntExtra("type",0)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(intent.hasExtra("poiItem")){
|
||||||
|
poiItem = intent.getParcelableExtra("poiItem")
|
||||||
|
}
|
||||||
|
|
||||||
|
if(intent.hasExtra("bean")){
|
||||||
|
bean = intent.getParcelableExtra("bean")
|
||||||
|
}
|
||||||
|
|
||||||
|
if(type == 0){
|
||||||
|
binding.llData.visibility = View.VISIBLE
|
||||||
|
binding.llSetting.visibility = View.GONE
|
||||||
|
|
||||||
|
mViewModel.getElectronicFenceList()
|
||||||
|
binding.tvCancel.visibility = View.GONE
|
||||||
|
}else if(type == 1){
|
||||||
|
binding.llData.visibility = View.GONE
|
||||||
|
binding.llSetting.visibility = View.VISIBLE
|
||||||
|
binding.tvCancel.visibility = View.VISIBLE
|
||||||
|
initSettingData()
|
||||||
|
}else {
|
||||||
|
binding.llData.visibility = View.GONE
|
||||||
|
binding.llSetting.visibility = View.VISIBLE
|
||||||
|
binding.tvCancel.visibility = View.VISIBLE
|
||||||
|
binding.tvCancel.text = "删除"
|
||||||
|
initModifyData()
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.recycler.adapter = mAdapter
|
||||||
|
binding.recycler.layoutManager = LinearLayoutManager(this)
|
||||||
|
|
||||||
|
binding.tvConfirm.setOnClickListener {
|
||||||
|
if (type == 0){
|
||||||
|
RouteManager.goAct(ARouterUrl.ELECTRONIC_ADDRESS_CHOOSE_ACT)
|
||||||
|
|
||||||
|
}else if(type == 1){
|
||||||
|
poiItem?.let {
|
||||||
|
mViewModel.setBtFence(title,radius,settingType,longitude,latitude,null)
|
||||||
|
}
|
||||||
|
}else if(type == 2){
|
||||||
|
bean?.let {
|
||||||
|
mViewModel.setBtFence(title,radius,settingType,longitude,latitude,it.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.tvCancel.setOnClickListener {
|
||||||
|
if(type == 2){
|
||||||
|
bean?.let {
|
||||||
|
mViewModel.deleteBtFence(it.id)
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
finish()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
binding.clSetting.skbRadius.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
|
||||||
|
override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
|
||||||
|
radius = p1
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onStartTrackingTouch(p0: SeekBar?) {
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onStopTrackingTouch(p0: SeekBar?) {
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
binding.clSetting.rbType.setOnCheckedChangeListener { radioGroup, checkedId ->
|
||||||
|
|
||||||
|
when(radioGroup.checkedRadioButtonId){
|
||||||
|
R.id.rb_leave ->{
|
||||||
|
settingType = 2
|
||||||
|
aMap?.let {
|
||||||
|
it.clear()
|
||||||
|
var markerOptions = MarkerOptions().position(LatLng(latitude,longitude)).icon(
|
||||||
|
BitmapDescriptorFactory.fromView(View.inflate(this,
|
||||||
|
R.layout.layout_bt_fence_leave,null)))
|
||||||
|
var marker = it.addMarker(markerOptions)
|
||||||
|
|
||||||
|
it.addCircle(CircleOptions().center(LatLng(latitude,longitude))
|
||||||
|
.radius(radius.toDouble()).fillColor(Color.parseColor("#61FFAC53"))
|
||||||
|
.strokeColor(Color.parseColor("#FFFFFF"))
|
||||||
|
.strokeWidth(1.0f)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
R.id.rb_enter ->{
|
||||||
|
settingType = 1
|
||||||
|
|
||||||
|
aMap?.let {
|
||||||
|
it.clear()
|
||||||
|
var markerOptions = MarkerOptions().position(LatLng(latitude,longitude)).icon(
|
||||||
|
BitmapDescriptorFactory.fromView(View.inflate(this,
|
||||||
|
R.layout.layout_bt_fence_enter,null)))
|
||||||
|
var marker = it.addMarker(markerOptions)
|
||||||
|
|
||||||
|
it.addCircle(CircleOptions().center(LatLng(latitude,longitude))
|
||||||
|
.radius(radius.toDouble()).fillColor(Color.parseColor("#66F04D42"))
|
||||||
|
.strokeColor(Color.parseColor("#FFFFFF"))
|
||||||
|
.strokeWidth(1.0f)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun initLocation(){
|
||||||
|
var locationStyle = MyLocationStyle()
|
||||||
|
locationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE)
|
||||||
|
aMap?.let {
|
||||||
|
it.clear()
|
||||||
|
it.myLocationStyle = locationStyle
|
||||||
|
it.uiSettings.isMyLocationButtonEnabled = false
|
||||||
|
it.isMyLocationEnabled = false
|
||||||
|
it.moveCamera(CameraUpdateFactory.zoomTo(20f))
|
||||||
|
|
||||||
|
var uiSettings = it.uiSettings
|
||||||
|
uiSettings.isZoomControlsEnabled = false
|
||||||
|
uiSettings.isMyLocationButtonEnabled = false
|
||||||
|
uiSettings.isScaleControlsEnabled = false
|
||||||
|
uiSettings.logoPosition = AMapOptions.LOGO_MARGIN_LEFT
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun initModifyData(){
|
||||||
|
bean?.let {
|
||||||
|
title = "${it.title}"
|
||||||
|
binding.clSetting.tvAddress.text = "${it.title}"
|
||||||
|
latitude = it.lat
|
||||||
|
longitude = it.log
|
||||||
|
radius = it.radius
|
||||||
|
settingType = it.type
|
||||||
|
binding.clSetting.skbRadius.progress = radius
|
||||||
|
if (settingType == 1){
|
||||||
|
binding.clSetting.rbType.check(R.id.rb_enter)
|
||||||
|
}else{
|
||||||
|
binding.clSetting.rbType.check(R.id.rb_leave)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
aMap?.let {
|
||||||
|
|
||||||
|
|
||||||
|
if(settingType == 1){
|
||||||
|
var markerOptions = MarkerOptions().position(LatLng(latitude,longitude)).icon(
|
||||||
|
BitmapDescriptorFactory.fromView(View.inflate(this,
|
||||||
|
R.layout.layout_bt_fence_enter,null)))
|
||||||
|
|
||||||
|
var marker = it.addMarker(markerOptions)
|
||||||
|
it.addCircle(CircleOptions().center(LatLng(latitude,longitude))
|
||||||
|
.radius(radius.toDouble()).fillColor(Color.parseColor("#66F04D42"))
|
||||||
|
.strokeColor(Color.parseColor("#FFFFFF"))
|
||||||
|
.strokeWidth(1.0f)
|
||||||
|
)
|
||||||
|
}else{
|
||||||
|
var markerOptions = MarkerOptions().position(LatLng(latitude,longitude)).icon(
|
||||||
|
BitmapDescriptorFactory.fromView(View.inflate(this,
|
||||||
|
R.layout.layout_bt_fence_leave,null)))
|
||||||
|
|
||||||
|
var marker = it.addMarker(markerOptions)
|
||||||
|
it.addCircle(CircleOptions().center(LatLng(latitude,longitude))
|
||||||
|
.radius(radius.toDouble()).fillColor(Color.parseColor("#61FFAC53"))
|
||||||
|
.strokeColor(Color.parseColor("#FFFFFF"))
|
||||||
|
.strokeWidth(1.0f))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
it.moveCamera(CameraUpdateFactory.newCameraPosition(CameraPosition(LatLng(latitude,longitude),14f,0f,0f)))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
fun initSettingData(){
|
||||||
|
|
||||||
|
poiItem?.let {
|
||||||
|
title = "${it.provinceName}${it.cityName}${it.adName}${it.title}"
|
||||||
|
binding.clSetting.tvAddress.text = "${it.provinceName}${it.cityName}${it.adName}${it.title}"
|
||||||
|
latitude = it.latLonPoint.latitude
|
||||||
|
longitude = it.latLonPoint.longitude
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.clSetting.skbRadius.progress = radius
|
||||||
|
|
||||||
|
binding.clSetting.rbType.check(R.id.rb_leave)
|
||||||
|
|
||||||
|
aMap?.let {
|
||||||
|
var markerOptions = MarkerOptions().position(LatLng(latitude,longitude)).icon(
|
||||||
|
BitmapDescriptorFactory.fromView(View.inflate(this,
|
||||||
|
R.layout.layout_bt_fence_leave,null)))
|
||||||
|
var marker = it.addMarker(markerOptions)
|
||||||
|
it.animateCamera(CameraUpdateFactory.newCameraPosition(CameraPosition(LatLng(latitude,longitude),15f,0f,0f)))
|
||||||
|
|
||||||
|
it.addCircle(CircleOptions().center(LatLng(latitude,longitude))
|
||||||
|
.radius(radius.toDouble()).fillColor(Color.parseColor("#61FFAC53"))
|
||||||
|
.strokeColor(Color.parseColor("#FFFFFF"))
|
||||||
|
.strokeWidth(1.0f)
|
||||||
|
)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun setLayout() = binding.root
|
||||||
|
|
||||||
|
override fun onDestroy() {
|
||||||
|
super.onDestroy()
|
||||||
|
binding.map.onDestroy()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onPause() {
|
||||||
|
super.onPause()
|
||||||
|
binding.map.onPause()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
binding.map.onResume()
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressLint("MissingSuperCall")
|
||||||
|
override fun onSaveInstanceState(outState: Bundle) {
|
||||||
|
super.onSaveInstanceState(outState)
|
||||||
|
binding.map.onSaveInstanceState(outState)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
binding.map.onCreate(savedInstanceState)
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package com.zj365.mime.adapter
|
||||||
|
|
||||||
|
import com.chad.library.adapter.base.viewholder.BaseViewHolder
|
||||||
|
import com.xty.base.adapter.BaseAdapter
|
||||||
|
import com.xty.common.util.NumUtils
|
||||||
|
import com.zj365.mime.R
|
||||||
|
import com.zj365.mime.model.CustomerPOItem
|
||||||
|
|
||||||
|
class ElectronicAddressAdapter : BaseAdapter<CustomerPOItem>(R.layout.item_electronic_address_search) {
|
||||||
|
override fun convert(holder: BaseViewHolder, item: CustomerPOItem) {
|
||||||
|
|
||||||
|
holder.setText(R.id.tv_address,"${ item.poiItem.title}")
|
||||||
|
holder.setText(R.id.tv_distance,"${item.poiItem.distance}m | ${item.poiItem.adName}${item.poiItem.snippet}附近")
|
||||||
|
if (item.isChecked){
|
||||||
|
holder.setGone(R.id.img_checked,false)
|
||||||
|
}else{
|
||||||
|
holder.setGone(R.id.img_checked,true)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package com.zj365.mime.model
|
||||||
|
|
||||||
|
import android.os.Parcelable
|
||||||
|
import com.amap.api.services.core.PoiItem
|
||||||
|
|
||||||
|
|
||||||
|
data class CustomerPOItem (var poiItem: PoiItem,var isChecked:Boolean = false){
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
|
||||||
|
|
||||||
|
<solid android:color="#66F04D42"/>
|
||||||
|
</shape>
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
|
||||||
|
|
||||||
|
<solid android:color="#61FFAC53"/>
|
||||||
|
|
||||||
|
</shape>
|
@ -0,0 +1,118 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/dp_0"
|
||||||
|
android:layout_weight="0.55">
|
||||||
|
<com.amap.api.maps.MapView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:id="@+id/mapView"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_cancel"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="取消"
|
||||||
|
android:textColor="@color/col_333"
|
||||||
|
android:textSize="@dimen/sp_14"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:drawableLeft="@mipmap/ic_back_arrow"
|
||||||
|
android:drawablePadding="@dimen/dp_5"
|
||||||
|
android:layout_marginLeft="@dimen/dp_10"
|
||||||
|
android:layout_marginTop="@dimen/dp_53"/>
|
||||||
|
|
||||||
|
|
||||||
|
<com.ruffian.library.widget.RTextView
|
||||||
|
android:id="@+id/tv_confirm"
|
||||||
|
android:layout_width="@dimen/dp_44"
|
||||||
|
android:layout_height="@dimen/dp_25"
|
||||||
|
app:corner_radius="@dimen/dp_4"
|
||||||
|
app:background_normal="@color/col_02c"
|
||||||
|
android:text="确定"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="@dimen/sp_12"
|
||||||
|
android:layout_gravity="end"
|
||||||
|
android:layout_marginRight="@dimen/dp_10"
|
||||||
|
android:layout_marginTop="@dimen/dp_53"/>
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/dp_0"
|
||||||
|
android:layout_weight="0.45"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:background="@color/white"
|
||||||
|
>
|
||||||
|
|
||||||
|
<com.ruffian.library.widget.RRelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/dp_38"
|
||||||
|
android:background="@color/col_6FA"
|
||||||
|
android:layout_margin="@dimen/dp_10">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/img_search"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@mipmap/ic_search"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_marginLeft="@dimen/dp_21"/>
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/et_search"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="搜索地点"
|
||||||
|
android:layout_toRightOf="@+id/img_search"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:textColor="@color/col_313"
|
||||||
|
android:background="@null"
|
||||||
|
android:textColorHint="@color/col_C7C"
|
||||||
|
android:imeOptions="actionSearch"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:inputType="text"
|
||||||
|
android:textSize="@dimen/sp_13"
|
||||||
|
android:layout_marginLeft="@dimen/dp_7"/>
|
||||||
|
|
||||||
|
</com.ruffian.library.widget.RRelativeLayout>
|
||||||
|
|
||||||
|
<com.scwang.smart.refresh.layout.SmartRefreshLayout
|
||||||
|
android:id="@+id/mRefresh"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/white"
|
||||||
|
android:layout_marginLeft="@dimen/dp_9"
|
||||||
|
android:layout_marginRight="@dimen/dp_13"
|
||||||
|
app:srlAccentColor="@color/white">
|
||||||
|
|
||||||
|
<com.scwang.smart.refresh.header.ClassicsHeader
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:foregroundTint="@color/white"
|
||||||
|
app:srlAccentColor="@color/black"
|
||||||
|
app:srlPrimaryColor="@color/white" />
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginLeft="@dimen/dp_17"
|
||||||
|
android:layout_marginRight="@dimen/dp_17"
|
||||||
|
android:id="@+id/recycler"/>
|
||||||
|
<com.scwang.smart.refresh.footer.ClassicsFooter
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
@ -0,0 +1,49 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/dp_56">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:gravity="left"
|
||||||
|
android:layout_toLeftOf="@+id/img_checked">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_address"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@color/col_333"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:textSize="@dimen/sp_14"
|
||||||
|
tools:text="长沙市田家炳中学长沙市田家炳中学长沙市" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_distance"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@color/col_C7C"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:textSize="@dimen/sp_12"
|
||||||
|
android:layout_below="@+id/tv_address"
|
||||||
|
tools:text="1.5km | 开福区乐古巷9号附近"/>
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/img_checked"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_marginLeft="@dimen/dp_15"
|
||||||
|
android:background="@mipmap/icon_address_checked"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</RelativeLayout>
|
@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<de.hdodenhof.circleimageview.CircleImageView
|
||||||
|
android:layout_width="@dimen/dp_90"
|
||||||
|
android:layout_height="@dimen/dp_90"
|
||||||
|
app:civ_circle_background_color="@color/col_D42"
|
||||||
|
app:civ_border_width="@dimen/dp_1"
|
||||||
|
app:civ_border_color="@color/white"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:background="@drawable/shape_radius_66f04d42"/>
|
||||||
|
|
||||||
|
<com.ruffian.library.widget.RTextView
|
||||||
|
android:layout_width="@dimen/dp_32"
|
||||||
|
android:layout_height="@dimen/dp_18"
|
||||||
|
app:corner_radius="5dp"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:text="禁入"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="@dimen/sp_10"
|
||||||
|
android:gravity="center"
|
||||||
|
app:background_normal="@drawable/shape_stroke_white_d42"/>
|
||||||
|
|
||||||
|
</FrameLayout>
|
@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<de.hdodenhof.circleimageview.CircleImageView
|
||||||
|
android:layout_width="@dimen/dp_90"
|
||||||
|
android:layout_height="@dimen/dp_90"
|
||||||
|
app:civ_circle_background_color="@color/col_C53"
|
||||||
|
app:civ_border_width="@dimen/dp_1"
|
||||||
|
app:civ_border_color="@color/white"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:background="@drawable/shape_raduis_61ffac53"/>
|
||||||
|
|
||||||
|
<com.ruffian.library.widget.RTextView
|
||||||
|
android:layout_width="@dimen/dp_32"
|
||||||
|
android:layout_height="@dimen/dp_18"
|
||||||
|
app:corner_radius="5dp"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:text="禁出"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="@dimen/sp_10"
|
||||||
|
android:gravity="center"
|
||||||
|
app:background_normal="@drawable/shape_storke_white_c53"/>
|
||||||
|
|
||||||
|
</FrameLayout>
|
@ -1,13 +1,18 @@
|
|||||||
package com.xty.network.model
|
package com.xty.network.model
|
||||||
|
|
||||||
data class EtFenceListBean(var count:Int,var list:ArrayList<EtFenceChildBean>){
|
import android.os.Parcelable
|
||||||
|
import kotlinx.android.parcel.Parcelize
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
|
data class EtFenceListBean(var count:Int,var list:ArrayList<EtFenceChildBean>):Parcelable{
|
||||||
|
@Parcelize
|
||||||
data class EtFenceChildBean(
|
data class EtFenceChildBean(
|
||||||
var id:Long,
|
var id:Long,
|
||||||
var user_id:Long,
|
var user_id:Long,
|
||||||
var title:String,
|
var title:String,
|
||||||
var radius:Int,
|
var radius:Int,
|
||||||
var type:Int,
|
var type:Int,
|
||||||
var log:String,
|
var log:Double,
|
||||||
var lat:String
|
var lat:Double
|
||||||
)
|
):Parcelable
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
package com.xty.network.model
|
package com.xty.network.model
|
||||||
|
|
||||||
data class HealthArchiveBean(var bmiInfo:BMIInfo,var healData:ArrayList<FamilyHealthBean.FamilyTargetBean>){
|
data class HealthArchiveBean(
|
||||||
|
var bmiInfo:BMIInfo,
|
||||||
|
var healData:ArrayList<FamilyHealthBean.FamilyTargetBean>,
|
||||||
|
var bmr:String,
|
||||||
|
var bmi:String){
|
||||||
|
|
||||||
data class BMIInfo(var levelName:String,var bmi:Float)
|
data class BMIInfo(var levelName:String,var bmi:Float)
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
package com.xty.network.model
|
||||||
|
|
||||||
|
data class UserOtherInfo(
|
||||||
|
var vip_end_time:String,
|
||||||
|
var order_count:Int,
|
||||||
|
var money:Double,
|
||||||
|
var start_business:String,
|
||||||
|
var operation_guide:String,
|
||||||
|
var coupons_count:Int,
|
||||||
|
var placard:String)
|