中建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
|
||||
|
||||
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(
|
||||
var id:Long,
|
||||
var user_id:Long,
|
||||
var title:String,
|
||||
var radius:Int,
|
||||
var type:Int,
|
||||
var log:String,
|
||||
var lat:String
|
||||
)
|
||||
var log:Double,
|
||||
var lat:Double
|
||||
):Parcelable
|
||||
}
|
||||
|
@ -1,6 +1,10 @@
|
||||
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)
|
||||
}
|
||||
|
@ -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)
|