Commit ba3f81d7 authored by wanglei's avatar wanglei

...

parent dc3983ed
package com.base.locationsharewhite.location
import android.os.Build
import com.base.locationsharewhite.BuildConfig
import com.base.locationsharewhite.helper.ConfigHelper
import com.base.locationsharewhite.utils.AppPreferences
import org.json.JSONObject
object BpUtils {
fun getBp(): JSONObject {
val pkg = ConfigHelper.packageName
val bp = JSONObject()
// .put("${pkg}_1", "")
.put("${pkg}_5", Build.VERSION.SDK_INT)
.put("${pkg}_8", BuildConfig.VERSION_NAME)
.put("${pkg}_9", AppPreferences.getInstance().getString("uuid", ""))
.put("${pkg}_10", AppPreferences.getInstance().getString("uuid", ""))//gid
.put("${pkg}_13", "android")
.put("${pkg}_14", BuildConfig.VERSION_CODE)
.put("${pkg}_15", "google")
.put("${pkg}_24", BuildConfig.BUILD_TYPE)
return bp
}
}
\ No newline at end of file
package com.base.locationsharewhite.location package com.base.locationsharewhite.location
import android.os.Build
import com.base.locationsharewhite.BuildConfig
import com.base.locationsharewhite.helper.AESHelper import com.base.locationsharewhite.helper.AESHelper
import com.base.locationsharewhite.helper.ConfigHelper import com.base.locationsharewhite.helper.ConfigHelper
import com.base.locationsharewhite.helper.ReportUtils.doPost import com.base.locationsharewhite.helper.ReportUtils.doPost
...@@ -45,21 +43,12 @@ object LocationLoginUtils { ...@@ -45,21 +43,12 @@ object LocationLoginUtils {
fun login(name: String? = null) { fun login(name: String? = null) {
Thread { Thread {
val pkg = ConfigHelper.packageName
val data = JSONObject() val data = JSONObject()
name?.let { data.put("nickName", it) } name?.let { data.put("nickName", it) }
val bp = JSONObject() val bp = BpUtils.getBp()
// .put("${pkg}_1", "")
.put("${pkg}_5", Build.VERSION.SDK_INT)
.put("${pkg}_8", BuildConfig.VERSION_NAME)
.put("${pkg}_9", AppPreferences.getInstance().getString("uuid", ""))
.put("${pkg}_10", AppPreferences.getInstance().getString("uuid", ""))//gid
.put("${pkg}_13", "android")
.put("${pkg}_14", BuildConfig.VERSION_CODE)
.put("${pkg}_15", "google")
.put("${pkg}_24", BuildConfig.BUILD_TYPE)
LogEx.logDebug(TAG, "uuid=${AppPreferences.getInstance().getString("uuid", "")}") LogEx.logDebug(TAG, "uuid=${AppPreferences.getInstance().getString("uuid", "")}")
val body = JSONObject() val body = JSONObject()
.put("data", data) .put("data", data)
......
package com.base.locationsharewhite.location package com.base.locationsharewhite.location
import android.os.Build
import com.base.locationsharewhite.BuildConfig
import com.base.locationsharewhite.helper.AESHelper import com.base.locationsharewhite.helper.AESHelper
import com.base.locationsharewhite.helper.ConfigHelper import com.base.locationsharewhite.helper.ConfigHelper
import com.base.locationsharewhite.helper.ReportUtils import com.base.locationsharewhite.helper.ReportUtils
import com.base.locationsharewhite.utils.AppPreferences
import com.base.locationsharewhite.utils.LogEx import com.base.locationsharewhite.utils.LogEx
import org.json.JSONObject import org.json.JSONObject
...@@ -27,16 +24,7 @@ object LocationNameUtils { ...@@ -27,16 +24,7 @@ object LocationNameUtils {
val data = JSONObject() val data = JSONObject()
data.put("nickName", nickname) data.put("nickName", nickname)
val bp = JSONObject() val bp = BpUtils.getBp()
// .put("${pkg}_1", "")
.put("${pkg}_5", Build.VERSION.SDK_INT)
.put("${pkg}_8", BuildConfig.VERSION_NAME)
.put("${pkg}_9", AppPreferences.getInstance().getString("uuid", ""))
.put("${pkg}_10", AppPreferences.getInstance().getString("uuid", ""))//gid
.put("${pkg}_13", "android")
.put("${pkg}_14", BuildConfig.VERSION_CODE)
.put("${pkg}_15", "google")
.put("${pkg}_24", BuildConfig.BUILD_TYPE)
val body = JSONObject() val body = JSONObject()
.put("data", data) .put("data", data)
.put("bp", bp) .put("bp", bp)
......
...@@ -42,17 +42,9 @@ object LocationPositionUtils { ...@@ -42,17 +42,9 @@ object LocationPositionUtils {
data.put("longitude", latLng.longitude) data.put("longitude", latLng.longitude)
data.put("power", power) data.put("power", power)
data.put("timezone", System.currentTimeMillis()) data.put("timezone", System.currentTimeMillis())
LogEx.logDebug(TAG, "latitude=${latLng.latitude} longitude=${latLng.longitude} power=$power") LogEx.logDebug(TAG, "uploadMyLocation uuid=${AppPreferences.getInstance().getString("uuid", "")}")
val bp = JSONObject() LogEx.logDebug(TAG, "uploadMyLocation latitude=${latLng.latitude} longitude=${latLng.longitude} power=$power")
// .put("${pkg}_1", "") val bp = BpUtils.getBp()
.put("${pkg}_5", Build.VERSION.SDK_INT)
.put("${pkg}_8", BuildConfig.VERSION_NAME)
.put("${pkg}_9", AppPreferences.getInstance().getString("uuid", ""))
.put("${pkg}_10", AppPreferences.getInstance().getString("uuid", ""))//gid
.put("${pkg}_13", "android")
.put("${pkg}_14", BuildConfig.VERSION_CODE)
.put("${pkg}_15", "google")
.put("${pkg}_24", BuildConfig.BUILD_TYPE)
val body = JSONObject() val body = JSONObject()
.put("data", data) .put("data", data)
.put("bp", bp) .put("bp", bp)
...@@ -89,22 +81,12 @@ object LocationPositionUtils { ...@@ -89,22 +81,12 @@ object LocationPositionUtils {
callBack: ((locationData: LocationData?) -> Unit)? = null callBack: ((locationData: LocationData?) -> Unit)? = null
) { ) {
Thread { Thread {
val pkg = ConfigHelper.packageName
val data = JSONObject() val data = JSONObject()
data.put("device", device) data.put("device", device)
LogEx.logDebug(TAG, "getLocation device=$device") LogEx.logDebug(TAG, "getLocation device=$device")
val bp = JSONObject() val bp = BpUtils.getBp()
// .put("${pkg}_1", "")
.put("${pkg}_5", Build.VERSION.SDK_INT)
.put("${pkg}_8", BuildConfig.VERSION_NAME)
.put("${pkg}_9", AppPreferences.getInstance().getString("uuid", ""))
.put("${pkg}_10", AppPreferences.getInstance().getString("uuid", ""))//gid
.put("${pkg}_13", "android")
.put("${pkg}_14", BuildConfig.VERSION_CODE)
.put("${pkg}_15", "google")
.put("${pkg}_24", BuildConfig.BUILD_TYPE)
LogEx.logDebug(TAG, "uuid=${AppPreferences.getInstance().getString("uuid", "")}") LogEx.logDebug(TAG, "uuid=${AppPreferences.getInstance().getString("uuid", "")}")
val body = JSONObject() val body = JSONObject()
.put("data", data) .put("data", data)
......
package com.base.locationsharewhite.location package com.base.locationsharewhite.location
import android.os.Build
import com.base.locationsharewhite.BuildConfig
import com.base.locationsharewhite.bean.ViewerBean import com.base.locationsharewhite.bean.ViewerBean
import com.base.locationsharewhite.bean.ViewingBean import com.base.locationsharewhite.bean.ViewingBean
import com.base.locationsharewhite.helper.AESHelper import com.base.locationsharewhite.helper.AESHelper
...@@ -39,19 +37,10 @@ object LocationShareListUtils { ...@@ -39,19 +37,10 @@ object LocationShareListUtils {
viewingListCallBack: ((viewingList: List<ViewingBean>) -> Unit)? = null viewingListCallBack: ((viewingList: List<ViewingBean>) -> Unit)? = null
) { ) {
Thread { Thread {
val pkg = ConfigHelper.packageName
val data = JSONObject() val data = JSONObject()
val bp = JSONObject() val bp = BpUtils.getBp()
// .put("${pkg}_1", "")
.put("${pkg}_5", Build.VERSION.SDK_INT)
.put("${pkg}_8", BuildConfig.VERSION_NAME)
.put("${pkg}_9", AppPreferences.getInstance().getString("uuid", ""))
.put("${pkg}_10", AppPreferences.getInstance().getString("uuid", ""))//gid
.put("${pkg}_13", "android")
.put("${pkg}_14", BuildConfig.VERSION_CODE)
.put("${pkg}_15", "google")
.put("${pkg}_24", BuildConfig.BUILD_TYPE)
val body = JSONObject() val body = JSONObject()
.put("data", data) .put("data", data)
.put("bp", bp) .put("bp", bp)
...@@ -95,4 +84,45 @@ object LocationShareListUtils { ...@@ -95,4 +84,45 @@ object LocationShareListUtils {
LogEx.logDebug(TAG, "viewingList size=${viewingList.size}") LogEx.logDebug(TAG, "viewingList size=${viewingList.size}")
viewingListCallBack?.invoke(viewingList) viewingListCallBack?.invoke(viewingList)
} }
/**
* 分享关系列表
*/
private val deleteUrl by lazy {
val pkg = ConfigHelper.packageName
val url = StringBuilder(
"${ConfigHelper.apiUrl}/dingwei/${pkg.filter { it.isLowerCase() }.substring(4, 9)}p"
)
url.append("?pkg=$pkg")
url.toString()
}
fun deleteViewer(device: String, callBacK: (result: Boolean) -> Unit) {
Thread {
val data = JSONObject()
data.put("device", device)
val bp = BpUtils.getBp()
val body = JSONObject()
.put("data", data)
.put("bp", bp)
.toString()
val paramJson = AESHelper.encrypt(body)
runCatching {
val result = ReportUtils.doPost(deleteUrl, HashMap(), paramJson)
LogEx.logDebug(TAG, "result=$result")
val responseData = LocationLoginUtils.extractData(result)
LogEx.logDebug(TAG, "responseData=$responseData")
if (responseData != null) {
val decryptedData = AESHelper.decrypt(responseData)
LogEx.logDebug(TAG, "decryptedData=$decryptedData")
callBacK.invoke(decryptedData.toBoolean())
}
}
}.start()
}
} }
\ No newline at end of file
package com.base.locationsharewhite.location package com.base.locationsharewhite.location
import android.os.Build
import com.base.locationsharewhite.BuildConfig
import com.base.locationsharewhite.helper.AESHelper import com.base.locationsharewhite.helper.AESHelper
import com.base.locationsharewhite.helper.ConfigHelper import com.base.locationsharewhite.helper.ConfigHelper
import com.base.locationsharewhite.helper.ReportUtils import com.base.locationsharewhite.helper.ReportUtils
...@@ -39,21 +37,11 @@ object LocationShareUtils { ...@@ -39,21 +37,11 @@ object LocationShareUtils {
callBack: (state: Int) -> Unit callBack: (state: Int) -> Unit
) { ) {
Thread { Thread {
val pkg = ConfigHelper.packageName
val data = JSONObject() val data = JSONObject()
data.put("invitationCode", invitationCode) data.put("invitationCode", invitationCode)
LogEx.logDebug(TAG, "invitationCode=${invitationCode}") LogEx.logDebug(TAG, "invitationCode=${invitationCode}")
val bp = JSONObject() val bp = BpUtils.getBp()
// .put("${pkg}_1", "")
.put("${pkg}_5", Build.VERSION.SDK_INT)
.put("${pkg}_8", BuildConfig.VERSION_NAME)
.put("${pkg}_9", AppPreferences.getInstance().getString("uuid", ""))
.put("${pkg}_10", AppPreferences.getInstance().getString("uuid", ""))//gid
.put("${pkg}_13", "android")
.put("${pkg}_14", BuildConfig.VERSION_CODE)
.put("${pkg}_15", "google")
.put("${pkg}_24", BuildConfig.BUILD_TYPE)
LogEx.logDebug(TAG, "uuid=${AppPreferences.getInstance().getString("uuid", "")}") LogEx.logDebug(TAG, "uuid=${AppPreferences.getInstance().getString("uuid", "")}")
val body = JSONObject() val body = JSONObject()
.put("data", data) .put("data", data)
......
...@@ -39,16 +39,7 @@ object LocationStatusUtils { ...@@ -39,16 +39,7 @@ object LocationStatusUtils {
data.put("device", device) data.put("device", device)
data.put("status", status) data.put("status", status)
val bp = JSONObject() val bp = BpUtils.getBp()
// .put("${pkg}_1", "")
.put("${pkg}_5", Build.VERSION.SDK_INT)
.put("${pkg}_8", BuildConfig.VERSION_NAME)
.put("${pkg}_9", AppPreferences.getInstance().getString("uuid", ""))
.put("${pkg}_10", AppPreferences.getInstance().getString("uuid", ""))//gid
.put("${pkg}_13", "android")
.put("${pkg}_14", BuildConfig.VERSION_CODE)
.put("${pkg}_15", "google")
.put("${pkg}_24", BuildConfig.BUILD_TYPE)
val body = JSONObject() val body = JSONObject()
.put("data", data) .put("data", data)
......
...@@ -54,7 +54,6 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea ...@@ -54,7 +54,6 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
private var friendMarker: Marker? = null private var friendMarker: Marker? = null
private var currentViewingBean: ViewingBean? = null private var currentViewingBean: ViewingBean? = null
override fun initView() { override fun initView() {
BarUtils.setStatusBarLightMode(this, true) BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT) BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
...@@ -79,15 +78,13 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea ...@@ -79,15 +78,13 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
adapter = ViewingAdapter( adapter = ViewingAdapter(
itemClick = { viewingBean -> itemClick = { viewingBean ->
if (currentViewingBean != viewingBean) { if (currentViewingBean?.device != viewingBean.device) {
removeOldViewingMarker() removeOldViewingMarker()
currentViewingBean = viewingBean currentViewingBean = viewingBean
startGetLocationJob()
} }
changeMarkerZIndex(false) changeViewingBeanPosition(true, true, true)
setViewingBeanMarker(true)
startGetLocationJob()
}, },
moreClick = { anchorView, item -> moreClick = { anchorView, item ->
showViewerMoreDialog(anchorView) showViewerMoreDialog(anchorView)
...@@ -113,9 +110,7 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea ...@@ -113,9 +110,7 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
while (isActive) { while (isActive) {
currentViewingBean?.let { viewingBean -> currentViewingBean?.let { viewingBean ->
LocationPositionUtils.getLocation(viewingBean.device) { locatDate -> LocationPositionUtils.getLocation(viewingBean.device) { locatDate ->
LogEx.logDebug(TAG, "getLocation ${viewingBean.device} locatDate=$locatDate")
currentViewingBean?.locatDate = locatDate currentViewingBean?.locatDate = locatDate
lifecycleScope.launch(Dispatchers.Main) { lifecycleScope.launch(Dispatchers.Main) {
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
toast("getLocation ${locatDate?.latitude} ${locatDate?.longitude}") toast("getLocation ${locatDate?.latitude} ${locatDate?.longitude}")
...@@ -124,7 +119,7 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea ...@@ -124,7 +119,7 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
viewing?.locatDate = locatDate viewing?.locatDate = locatDate
adapter.notifyDataSetChanged() adapter.notifyDataSetChanged()
setViewingBeanMarker(false) changeViewingBeanPosition(false, false, false)
} }
} }
} }
...@@ -166,7 +161,6 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea ...@@ -166,7 +161,6 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
) )
} }
override fun initListener() { override fun initListener() {
super.initListener() super.initListener()
if (isLanguageRecreate(MyApplication.locationMapLanguage)) { if (isLanguageRecreate(MyApplication.locationMapLanguage)) {
...@@ -178,9 +172,11 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea ...@@ -178,9 +172,11 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
binding.ivFanhui.setOnClickListener { binding.ivFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed() onBackPressedDispatcher.onBackPressed()
} }
binding.ivChangeMapType.setOnClickListener { binding.ivChangeMapType.setOnClickListener {
map?.let { showMapTypeDialog(it) } map?.let { showMapTypeDialog(it) }
} }
binding.tvGotIt.setOnClickListener { binding.tvGotIt.setOnClickListener {
binding.llFriendsGuide.visibility = View.GONE binding.llFriendsGuide.visibility = View.GONE
if (adapter.items.isEmpty()) { if (adapter.items.isEmpty()) {
...@@ -195,7 +191,7 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea ...@@ -195,7 +191,7 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
} }
} }
binding.ivLocation.setOnClickListener { binding.ivLocation.setOnClickListener {
resetMyLocation(locationPresenter.getMyLocation(), true, true) changeMyLocation(locationPresenter.getMyLocation(), true, true, true)
} }
binding.ivRefresh.setOnClickListener { binding.ivRefresh.setOnClickListener {
startRefreshAnimation() startRefreshAnimation()
...@@ -209,7 +205,6 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea ...@@ -209,7 +205,6 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
} }
private var valueAnimator: ValueAnimator? = null private var valueAnimator: ValueAnimator? = null
private fun startRefreshAnimation() { private fun startRefreshAnimation() {
if (valueAnimator == null) { if (valueAnimator == null) {
...@@ -234,41 +229,59 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea ...@@ -234,41 +229,59 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
} }
override fun onMapReady(googleMap: GoogleMap) { override fun onMapReady(googleMap: GoogleMap) {
LogEx.logDebug(TAG,"onMapReady")
map = googleMap map = googleMap
LogEx.logDebug(TAG, "onMapReady") LogEx.logDebug(TAG, "onMapReady")
val flag = resetMyLocation(locationPresenter.getMyLocation(), true, true) val flag = changeMyLocation(locationPresenter.getMyLocation(), true, true, true)
if (!flag) { if (!flag) {
locationPresenter.getGoogleServiceLocation() locationPresenter.getGoogleServiceLocation()
locationPresenter.oneShotLocationCallBack = { locationPresenter.oneShotLocationCallBack = {
resetMyLocation(locationPresenter.getMyLocation(), true, true) changeMyLocation(locationPresenter.getMyLocation(), true, true, true)
} }
} }
locationPresenter.refreshLocationCallBack = { locationPresenter.refreshLocationCallBack = {
toast("updata ${it?.latitude} ${it?.longitude}") toast("updata ${it?.latitude} ${it?.longitude}")
resetMyLocation(it, false, false) LogEx.logDebug(TAG, "myLocation ${it}")
changeMyLocation(it, false, false, false)
} }
} }
private fun resetMyLocation(latLng: LatLng?, resetZoom: Boolean, changeZIndex: Boolean): Boolean { /**
* 设置自己位置
*/
private fun changeMyLocation(
latLng: LatLng?,
followCamera: Boolean,
resetZoom: Boolean,
changeZIndex: Boolean
): Boolean {
initMyLocationMarker()
if (changeZIndex) { if (changeZIndex) {
changeMarkerZIndex(true) changeMarkerZIndex(true)
} }
initMyLocationMarker()
latLng?.let { latLng?.let {
myMarker?.position = it myMarker?.position = it
if (resetZoom) {
map?.moveCamera(CameraUpdateFactory.newLatLngZoom(it, 15f)) if (followCamera) {
} else { if (resetZoom) {
map?.moveCamera(CameraUpdateFactory.newLatLng(it)) map?.moveCamera(CameraUpdateFactory.newLatLngZoom(it, 15f))
myMarker?.showInfoWindow()
} else {
map?.moveCamera(CameraUpdateFactory.newLatLng(it))
}
} }
return true return true
} }
return false return false
} }
/**
* 初始化自己Marker
*/
private fun initMyLocationMarker() { private fun initMyLocationMarker() {
if (myMarker == null) { if (myMarker == null) {
var myLatLng: LatLng? = getLatLngByLocationManager() var myLatLng: LatLng? = getLatLngByLocationManager()
...@@ -283,37 +296,63 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea ...@@ -283,37 +296,63 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
} }
} }
private fun setViewingBeanMarker(resetZoom: Boolean) { /**
* 改变他人位置
*/
private fun changeViewingBeanPosition(changeCamera: Boolean, resetZoom: Boolean, changeZIndex: Boolean) {
currentViewingBean?.let { viewingBean -> currentViewingBean?.let { viewingBean ->
viewingBean.locatDate?.let { locatDate -> viewingBean.locatDate?.let { locatDate ->
val latLng = LatLng(locatDate.latitude, locatDate.longitude) val latLng = LatLng(locatDate.latitude, locatDate.longitude)
initViewingMarker(latLng, viewingBean.nickname)
if (friendMarker == null) { setViewingBeanMarker(latLng, changeCamera, resetZoom, changeZIndex)
val friendAvatar = LayoutInflater.from(this).inflate(R.layout.avatar_friend, null)
LogEx.logDebug(TAG, "initViewingBeanMarker locatDate ${locatDate.latitude} ${locatDate.longitude}")
friendMarker = map?.addLocationMarker(friendAvatar, latLng, viewingBean.nickname)
changeMarkerZIndex(false)
}
setViewingBeanLocation(latLng, resetZoom)
} }
} }
} }
/**
* 初始化他人Marker
*/
private fun initViewingMarker(latLng: LatLng, nickname: String) {
if (friendMarker == null) {
val friendAvatar = LayoutInflater.from(this).inflate(R.layout.avatar_friend, null)
friendMarker = map?.addLocationMarker(friendAvatar, latLng, nickname)
}
}
/**
* 移除旧的他人Marker
*/
private fun removeOldViewingMarker() { private fun removeOldViewingMarker() {
friendMarker?.remove() friendMarker?.remove()
friendMarker = null friendMarker = null
} }
private fun setViewingBeanLocation(latLng: LatLng, resetZoom: Boolean = false) { /**
if (resetZoom) { * 移动他人Marker
map?.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15f)) */
} else { private fun setViewingBeanMarker(
map?.moveCamera(CameraUpdateFactory.newLatLng(latLng)) latLng: LatLng,
changeCamera: Boolean,
resetZoom: Boolean,
changeZIndex: Boolean
) {
if (changeCamera) {
if (resetZoom) {
map?.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15f))
friendMarker?.showInfoWindow()
} else {
map?.moveCamera(CameraUpdateFactory.newLatLng(latLng))
}
}
friendMarker?.position = latLng
LogEx.logDebug(TAG, "Viewing ${latLng}")
if (changeZIndex) {
changeMarkerZIndex(false)
} }
myMarker?.position = latLng
} }
private fun changeMarkerZIndex(isShowMe: Boolean) { private fun changeMarkerZIndex(isShowMe: Boolean) {
......
...@@ -14,6 +14,7 @@ import com.base.locationsharewhite.location.LocationShareUtils.SHARE_STATE_MYSEL ...@@ -14,6 +14,7 @@ import com.base.locationsharewhite.location.LocationShareUtils.SHARE_STATE_MYSEL
import com.base.locationsharewhite.location.LocationShareUtils.SHARE_STATE_SHARED import com.base.locationsharewhite.location.LocationShareUtils.SHARE_STATE_SHARED
import com.base.locationsharewhite.location.LocationShareUtils.SHARE_STATE_SUCCESS import com.base.locationsharewhite.location.LocationShareUtils.SHARE_STATE_SUCCESS
import com.base.locationsharewhite.location.LocationStatusUtils import com.base.locationsharewhite.location.LocationStatusUtils
import com.base.locationsharewhite.ui.views.DialogView.showViewerMoreDialog
import com.base.locationsharewhite.utils.BarUtils import com.base.locationsharewhite.utils.BarUtils
import com.base.locationsharewhite.utils.LogEx import com.base.locationsharewhite.utils.LogEx
import com.base.locationsharewhite.utils.ToastUtils.toast import com.base.locationsharewhite.utils.ToastUtils.toast
...@@ -58,6 +59,15 @@ class LocationShareActivity : BaseActivity<ActivityLocationShareBinding>() { ...@@ -58,6 +59,15 @@ class LocationShareActivity : BaseActivity<ActivityLocationShareBinding>() {
} }
} }
}) })
adapter.moreAction = { anchorView, viewerBean ->
showViewerMoreDialog(anchorView, deleteAction = {
LocationShareListUtils.deleteViewer(viewerBean.device) {
runOnUiThread {
toast(it.toString())
}
}
})
}
binding.rv.adapter = adapter binding.rv.adapter = adapter
......
...@@ -4,8 +4,6 @@ import android.content.Context ...@@ -4,8 +4,6 @@ import android.content.Context
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.CompoundButton import android.widget.CompoundButton
import android.widget.RadioGroup
import android.widget.RadioGroup.OnCheckedChangeListener
import androidx.recyclerview.widget.RecyclerView.ViewHolder import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.locationsharewhite.R import com.base.locationsharewhite.R
import com.base.locationsharewhite.bean.ViewerBean import com.base.locationsharewhite.bean.ViewerBean
...@@ -17,6 +15,8 @@ class ViewerAdapter( ...@@ -17,6 +15,8 @@ class ViewerAdapter(
private val switchAction: (viewerBean: ViewerBean, isChecked: Boolean) -> Unit private val switchAction: (viewerBean: ViewerBean, isChecked: Boolean) -> Unit
) : BaseQuickAdapter<ViewerBean, ViewerAdapter.ViewerViewHolder>() { ) : BaseQuickAdapter<ViewerBean, ViewerAdapter.ViewerViewHolder>() {
var moreAction: ((anchorView: View, viewerBean: ViewerBean) -> Unit)? = null
inner class ViewerViewHolder(view: View) : ViewHolder(view) inner class ViewerViewHolder(view: View) : ViewHolder(view)
override fun onBindViewHolder(holder: ViewerViewHolder, position: Int, item: ViewerBean?) { override fun onBindViewHolder(holder: ViewerViewHolder, position: Int, item: ViewerBean?) {
...@@ -32,6 +32,9 @@ class ViewerAdapter( ...@@ -32,6 +32,9 @@ class ViewerAdapter(
} }
switchAction.invoke(item, isChecked) switchAction.invoke(item, isChecked)
} }
binding.ivMore.setOnClickListener {
moreAction?.invoke(it, item)
}
} }
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): ViewerViewHolder { override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): ViewerViewHolder {
......
...@@ -34,6 +34,7 @@ object DialogView { ...@@ -34,6 +34,7 @@ object DialogView {
params?.y = 20 params?.y = 20
dialog.window?.attributes = params dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent) dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
LogEx.logDebug("showMapTypeDialog", "mapType=${googleMap.mapType}")
if (googleMap.mapType == GoogleMap.MAP_TYPE_SATELLITE) { if (googleMap.mapType == GoogleMap.MAP_TYPE_SATELLITE) {
binding.ivStatellite.background = ContextCompat.getDrawable(this, R.drawable.bg_stroke_03b988_15) binding.ivStatellite.background = ContextCompat.getDrawable(this, R.drawable.bg_stroke_03b988_15)
binding.tvStatellite.setTextColor(Color.parseColor("#03B988")) binding.tvStatellite.setTextColor(Color.parseColor("#03B988"))
...@@ -84,6 +85,8 @@ object DialogView { ...@@ -84,6 +85,8 @@ object DialogView {
fun Context.showViewerMoreDialog( fun Context.showViewerMoreDialog(
anchorView: View, anchorView: View,
renameAction: (() -> Unit)? = null,
deleteAction: (() -> Unit)? = null,
) { ) {
val binding = DialogViewerMoreBinding.inflate(LayoutInflater.from(this)) val binding = DialogViewerMoreBinding.inflate(LayoutInflater.from(this))
val dialog = AlertDialog.Builder(this).create() val dialog = AlertDialog.Builder(this).create()
...@@ -113,10 +116,18 @@ object DialogView { ...@@ -113,10 +116,18 @@ object DialogView {
} else { } else {
binding.root.background = ContextCompat.getDrawable(this, R.drawable.bg_b3000000_tl10_blr10) binding.root.background = ContextCompat.getDrawable(this, R.drawable.bg_b3000000_tl10_blr10)
location[1] + resources.getDimensionPixelOffset(R.dimen.dp_2) location[1] + resources.getDimensionPixelOffset(R.dimen.dp_2)
} }
params?.x = x params?.x = x
params?.y = y params?.y = y
dialog.window?.attributes = params dialog.window?.attributes = params
binding.tvRename.setOnClickListener {
}
binding.tvDelete.setOnClickListener {
dialog.dismiss()
deleteAction?.invoke()
}
} }
fun Context.viewIsOutScreen(view: View, height: Int): Boolean { fun Context.viewIsOutScreen(view: View, height: Int): Boolean {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke <stroke
android:width="2dp" android:width="5dp"
android:color="#03B988" /> android:color="#03B988" />
<corners android:radius="15dp"/> <corners android:radius="15dp"/>
</shape> </shape>
\ No newline at end of file
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="26dp" android:layout_marginTop="26dp"
android:padding="1dp" android:padding="2dp"
android:src="@mipmap/staellitemap" android:src="@mipmap/staellitemap"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="26dp" android:layout_marginTop="26dp"
android:padding="1dp" android:padding="2dp"
android:src="@mipmap/streetmap" android:src="@mipmap/streetmap"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:id="@+id/tv_rename"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="45dp" android:layout_height="45dp"
android:gravity="center" android:gravity="center"
...@@ -19,6 +20,7 @@ ...@@ -19,6 +20,7 @@
android:background="#545454" /> android:background="#545454" />
<TextView <TextView
android:id="@+id/tv_delete"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="45dp" android:layout_height="45dp"
android:gravity="center" android:gravity="center"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment