Commit 1052f0cc authored by wanglei's avatar wanglei

...

parent 7c842ceb
...@@ -36,6 +36,7 @@ android { ...@@ -36,6 +36,7 @@ android {
viewBinding = true viewBinding = true
buildConfig = true buildConfig = true
} }
} }
dependencies { dependencies {
......
...@@ -3,9 +3,9 @@ package com.base.pdfreader2.ads ...@@ -3,9 +3,9 @@ package com.base.pdfreader2.ads
import android.app.Activity import android.app.Activity
import com.base.locationsharewhite.ads.admob.AdmobInterstitialUtils import com.base.locationsharewhite.ads.admob.AdmobInterstitialUtils
import com.base.locationsharewhite.ads.admob.AdmobNativeUtils import com.base.locationsharewhite.ads.admob.AdmobNativeUtils
import com.base.pdfreader2.helper.EventUtils import com.base.locationsharewhite.helper.EventUtils
import com.base.pdfreader2.helper.MyApplication import com.base.locationsharewhite.helper.MyApplication
import com.base.pdfreader2.utils.AppPreferences import com.base.locationsharewhite.utils.AppPreferences
import com.google.android.gms.ads.MobileAds import com.google.android.gms.ads.MobileAds
import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicBoolean
...@@ -27,36 +27,9 @@ object AdmobHelper { ...@@ -27,36 +27,9 @@ object AdmobHelper {
const val native_limit_click = "native_limit_click" const val native_limit_click = "native_limit_click"
//是否展示多语言
val showLanPage = "showLanPage"
//开屏加载ad时间 //开屏加载ad时间
val open_ad_loading = "open_ad_loading" val open_ad_loading = "open_ad_loading"
//创建pdf加载ad时间
val create_pdf_loading = "create_pdf_loading"
//删除文件
val delete_loading = "delete_loading"
//打开文件
val open_file_loading = "open_file_loading"
//合并pdf
val merge_loading = "merge_loading"
//拆分pdf
val split_loading = "split_loading"
//可请求时间段(由 x 定义)
const val ad_request_period = "ad_request_interval"
//可请求时间段内允许的最大请求数(由 y 定义)
const val ad_period_max_request = "ad_period_max_request"
//可请求时间段间隔时间
const val ad_request_period_interval = "ad_request_period_interval"
var isAdInit = AtomicBoolean(false) var isAdInit = AtomicBoolean(false)
fun initAdmobAd(activity: Activity) { fun initAdmobAd(activity: Activity) {
...@@ -152,5 +125,4 @@ object AdmobHelper { ...@@ -152,5 +125,4 @@ object AdmobHelper {
return status == 1 return status == 1
} }
} }
\ No newline at end of file
...@@ -4,13 +4,13 @@ import android.app.Activity ...@@ -4,13 +4,13 @@ import android.app.Activity
import android.app.Dialog import android.app.Dialog
import android.widget.Toast import android.widget.Toast
import com.base.locationsharewhite.BuildConfig import com.base.locationsharewhite.BuildConfig
import com.base.locationsharewhite.ads.AdDialog.showAdPreparingDialog
import com.base.locationsharewhite.ads.admob.AdmobEvent.clickAd import com.base.locationsharewhite.ads.admob.AdmobEvent.clickAd
import com.base.locationsharewhite.ads.admob.AdmobEvent.pullAd import com.base.locationsharewhite.ads.admob.AdmobEvent.pullAd
import com.base.locationsharewhite.ads.admob.AdmobEvent.showAd import com.base.locationsharewhite.ads.admob.AdmobEvent.showAd
import com.base.locationsharewhite.helper.ConfigHelper import com.base.locationsharewhite.helper.ConfigHelper
import com.base.locationsharewhite.helper.EventUtils import com.base.locationsharewhite.helper.EventUtils
import com.base.locationsharewhite.helper.MyApplication import com.base.locationsharewhite.helper.MyApplication
import com.base.pdfreader2.ads.AdDialog.showAdPreparingDialog
import com.base.pdfreader2.ads.AdDisplayUtils import com.base.pdfreader2.ads.AdDisplayUtils
import com.base.pdfreader2.ads.AdmobHelper.lastShowedOnHiddenTime import com.base.pdfreader2.ads.AdmobHelper.lastShowedOnHiddenTime
import com.google.android.gms.ads.AdError import com.google.android.gms.ads.AdError
......
...@@ -7,7 +7,7 @@ data class ViewingBean( ...@@ -7,7 +7,7 @@ data class ViewingBean(
val device: String, val device: String,
val nickname: String, val nickname: String,
val status: Int = -1, val status: Int = -1,
val locatDate: LocationData? = null, var locatDate: LocationData? = null,
) )
data class LocationData( data class LocationData(
......
...@@ -82,6 +82,9 @@ object LocationPositionUtils { ...@@ -82,6 +82,9 @@ object LocationPositionUtils {
url.toString() url.toString()
} }
/**
* 获取定位信息
*/
fun getLocation( fun getLocation(
device: String, device: String,
callBack: ((locationData: LocationData) -> Unit)? = null callBack: ((locationData: LocationData) -> Unit)? = null
...@@ -91,6 +94,7 @@ object LocationPositionUtils { ...@@ -91,6 +94,7 @@ object LocationPositionUtils {
val data = JSONObject() val data = JSONObject()
data.put("device", device) data.put("device", device)
LogEx.logDebug(TAG, "getLocation device=$device")
val bp = JSONObject() val bp = JSONObject()
// .put("${pkg}_1", "") // .put("${pkg}_1", "")
...@@ -111,16 +115,16 @@ object LocationPositionUtils { ...@@ -111,16 +115,16 @@ object LocationPositionUtils {
val paramJson = AESHelper.encrypt(body) val paramJson = AESHelper.encrypt(body)
runCatching { runCatching {
val result = ReportUtils.doPost(getLatLngUrl, HashMap(), paramJson) val result = ReportUtils.doPost(getLatLngUrl, HashMap(), paramJson)
LogEx.logDebug(TAG, "result=$result") LogEx.logDebug(TAG, "getLocation result=$result")
val responseData = LocationLoginUtils.extractData(result) val responseData = LocationLoginUtils.extractData(result)
if (responseData != null) { if (responseData != null) {
val decryptedData = AESHelper.decrypt(responseData) val decryptedData = AESHelper.decrypt(responseData)
LogEx.logDebug(TAG, "decryptedData=$decryptedData") LogEx.logDebug(TAG, "getLocation decryptedData=$decryptedData")
val locationData: LocationData? = parseLoginData(decryptedData) val locationData: LocationData? = parseLoginData(decryptedData)
locationData?.let { callBack?.invoke(it) } locationData?.let { callBack?.invoke(it) }
} }
} }
} }.start()
} }
private fun parseLoginData(decryptedData: String): LocationData? { private fun parseLoginData(decryptedData: String): LocationData? {
......
...@@ -58,6 +58,7 @@ object LocationShareListUtils { ...@@ -58,6 +58,7 @@ object LocationShareListUtils {
.toString() .toString()
LogEx.logDebug(TAG, "uuid=${AppPreferences.getInstance().getString("uuid", "")}") LogEx.logDebug(TAG, "uuid=${AppPreferences.getInstance().getString("uuid", "")}")
val paramJson = AESHelper.encrypt(body) val paramJson = AESHelper.encrypt(body)
LogEx.logDebug(TAG, "paramJson=$paramJson")
runCatching { runCatching {
val result = ReportUtils.doPost(url, HashMap(), paramJson) val result = ReportUtils.doPost(url, HashMap(), paramJson)
LogEx.logDebug(TAG, "result=$result") LogEx.logDebug(TAG, "result=$result")
......
package com.base.locationsharewhite.ui.locationmap package com.base.locationsharewhite.ui.locationmap
import android.animation.ValueAnimator import android.animation.ValueAnimator
import android.annotation.SuppressLint
import android.graphics.Color import android.graphics.Color
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
...@@ -92,20 +93,30 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea ...@@ -92,20 +93,30 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
binding.rvViewing.adapter = adapter binding.rvViewing.adapter = adapter
} }
@SuppressLint("NotifyDataSetChanged")
private fun startGetLocationJob() { private fun startGetLocationJob() {
getLocationJob?.cancel() getLocationJob?.cancel()
getLocationJob = null getLocationJob = null
getLocationJob = lifecycleScope.launch(Dispatchers.IO) { getLocationJob = lifecycleScope.launch(Dispatchers.IO) {
while (isActive) { while (isActive) {
currentViewingBean?.let { currentViewingBean?.let { viewingBean ->
LocationPositionUtils.getLocation(it.device) { LogEx.logDebug(TAG, "startGetLocationJob")
lifecycleScope.launch(Dispatchers.Main) { LocationPositionUtils.getLocation(viewingBean.device) { locatDate ->
LogEx.logDebug(TAG, "locatDate=$locatDate")
lifecycleScope.launch(Dispatchers.Main) {
if (BuildConfig.DEBUG) {
toast("${locatDate.latitude} ${locatDate.longitude}")
}
val viewing = adapter.items.findLast { it.device == viewingBean.device }
viewing?.locatDate = locatDate
adapter.notifyDataSetChanged()
friendMarker?.position = LatLng(locatDate.latitude, locatDate.longitude)
} }
} }
} }
delay(30 * 1000L) delay(10 * 1000L)
} }
} }
} }
...@@ -258,10 +269,13 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea ...@@ -258,10 +269,13 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
} }
val friendAvatar = LayoutInflater.from(this).inflate(R.layout.avatar_friend, null) val friendAvatar = LayoutInflater.from(this).inflate(R.layout.avatar_friend, null)
viewingBean.locatDate?.let { viewingBean.locatDate?.let {
val latLng = LatLng(viewingBean.locatDate.latitude, viewingBean.locatDate.longitude) val latLng = LatLng(it.latitude, it.longitude)
friendMarker = map?.addLocationMarker(friendAvatar, latLng, viewingBean.nickname) friendMarker = map?.addLocationMarker(friendAvatar, latLng, viewingBean.nickname)
map?.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15f)) map?.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15f))
} }
if (viewingBean.locatDate == null) {
toast("can't get friends location info")
}
} }
......
...@@ -4,10 +4,13 @@ import android.annotation.SuppressLint ...@@ -4,10 +4,13 @@ import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.location.Location import android.location.Location
import androidx.lifecycle.LifecycleCoroutineScope import androidx.lifecycle.LifecycleCoroutineScope
import com.base.locationsharewhite.BuildConfig
import com.base.locationsharewhite.location.LocationPositionUtils.uploadMyLocation import com.base.locationsharewhite.location.LocationPositionUtils.uploadMyLocation
import com.base.locationsharewhite.map.MapUtils.getLatLngByLocationManager import com.base.locationsharewhite.map.MapUtils.getLatLngByLocationManager
import com.base.locationsharewhite.utils.AppPreferences
import com.base.locationsharewhite.utils.BatteryUtils.getBatteryLevel import com.base.locationsharewhite.utils.BatteryUtils.getBatteryLevel
import com.base.locationsharewhite.utils.LogEx import com.base.locationsharewhite.utils.LogEx
import com.base.locationsharewhite.utils.ToastUtils.toast
import com.google.android.gms.location.FusedLocationProviderClient import com.google.android.gms.location.FusedLocationProviderClient
import com.google.android.gms.location.LocationServices import com.google.android.gms.location.LocationServices
import com.google.android.gms.maps.model.LatLng import com.google.android.gms.maps.model.LatLng
...@@ -43,6 +46,15 @@ class LocationPresenter( ...@@ -43,6 +46,15 @@ class LocationPresenter(
if (latLng == null) { if (latLng == null) {
latLng = googleLocation latLng = googleLocation
} }
// if (BuildConfig.DEBUG) {
// latLng = LatLng(22.319275419461, 114.16934747047871)
// launch(Dispatchers.Main) {
// val device = AppPreferences.getInstance().getString("uuid", "")
// activity.toast("device=$device")
// delay(2000)
// activity.toast("Upload ${latLng.latitude} ${latLng.longitude}")
// }
// }
val power = activity.getBatteryLevel() val power = activity.getBatteryLevel()
latLng?.let { uploadMyLocation(latLng, power) } latLng?.let { uploadMyLocation(latLng, power) }
delay(30 * 1000L) delay(30 * 1000L)
......
package com.base.locationsharewhite.ui.set package com.base.locationsharewhite.ui.set
import android.graphics.Color import android.graphics.Color
import android.view.View
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import com.base.locationsharewhite.BuildConfig
import com.base.locationsharewhite.R import com.base.locationsharewhite.R
import com.base.locationsharewhite.databinding.ActivityRenameBinding import com.base.locationsharewhite.databinding.ActivityRenameBinding
import com.base.locationsharewhite.helper.BaseActivity import com.base.locationsharewhite.helper.BaseActivity
import com.base.locationsharewhite.helper.MyApplication import com.base.locationsharewhite.helper.MyApplication
import com.base.locationsharewhite.location.LocationLoginUtils import com.base.locationsharewhite.location.LocationLoginUtils
import com.base.locationsharewhite.location.LocationNameUtils import com.base.locationsharewhite.location.LocationNameUtils
import com.base.locationsharewhite.utils.AppPreferences
import com.base.locationsharewhite.utils.BarUtils import com.base.locationsharewhite.utils.BarUtils
import com.base.locationsharewhite.utils.ClipboardUtils.copyText
import com.base.locationsharewhite.utils.ToastUtils.toast import com.base.locationsharewhite.utils.ToastUtils.toast
class RenameActivity : BaseActivity<ActivityRenameBinding>() { class RenameActivity : BaseActivity<ActivityRenameBinding>() {
...@@ -26,6 +30,13 @@ class RenameActivity : BaseActivity<ActivityRenameBinding>() { ...@@ -26,6 +30,13 @@ class RenameActivity : BaseActivity<ActivityRenameBinding>() {
binding.editName.setText(LocationLoginUtils.nickNameSp) binding.editName.setText(LocationLoginUtils.nickNameSp)
if (BuildConfig.DEBUG) {
binding.tvDevice.visibility = View.VISIBLE
binding.tvDevice.text = AppPreferences.getInstance().getString("uuid", "")
binding.tvDevice.setOnClickListener {
copyText("device", binding.tvDevice.text.toString())
}
}
} }
override fun initListener() { override fun initListener() {
......
...@@ -4,6 +4,7 @@ import androidx.lifecycle.LifecycleCoroutineScope ...@@ -4,6 +4,7 @@ import androidx.lifecycle.LifecycleCoroutineScope
import com.base.locationsharewhite.bean.ConstObject import com.base.locationsharewhite.bean.ConstObject
import com.base.locationsharewhite.utils.AppPreferences import com.base.locationsharewhite.utils.AppPreferences
import com.base.locationsharewhite.utils.LogEx import com.base.locationsharewhite.utils.LogEx
import com.base.pdfreader2.ads.AdmobHelper.open_ad_loading
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
...@@ -16,7 +17,7 @@ class SplashPresenter( ...@@ -16,7 +17,7 @@ class SplashPresenter(
private var jumpJob: Job? = null private var jumpJob: Job? = null
var loadingTime = AppPreferences.getInstance().getString(open_ad_loading, "15").toInt() var loadingTime = AppPreferences.getInstance().getString(open_ad_loading, "5").toInt()
var startJumpJob: Boolean = false var startJumpJob: Boolean = false
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
<TextView <TextView
android:id="@+id/tv"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
...@@ -20,6 +21,14 @@ ...@@ -20,6 +21,14 @@
android:textColor="#001D29" android:textColor="#001D29"
android:textSize="20sp" /> android:textSize="20sp" />
<TextView
android:id="@+id/tv_device"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:visibility="gone" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="100dp" android:layout_height="100dp"
......
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