Commit b4fdaf26 authored by wanglei's avatar wanglei

...

parent 213fec50
...@@ -133,9 +133,6 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea ...@@ -133,9 +133,6 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
allowAllTimeDialog?.dismiss() allowAllTimeDialog?.dismiss()
allowAllTimeDialog = null allowAllTimeDialog = null
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
launcher.launch(arrayOf(Manifest.permission.POST_NOTIFICATIONS)) {}
}
requestServiceLocationUpdates() requestServiceLocationUpdates()
} }
} }
......
package com.base.locationsharewhite.ui.main package com.base.locationsharewhite.ui.main
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Dialog
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.view.View import android.view.View
...@@ -13,6 +14,7 @@ import com.base.locationsharewhite.ads.AdsMgr ...@@ -13,6 +14,7 @@ import com.base.locationsharewhite.ads.AdsMgr
import com.base.locationsharewhite.ads.AdsShowCallBack import com.base.locationsharewhite.ads.AdsShowCallBack
import com.base.locationsharewhite.bean.ViewerBean import com.base.locationsharewhite.bean.ViewerBean
import com.base.locationsharewhite.databinding.ActivityLocationShareBinding import com.base.locationsharewhite.databinding.ActivityLocationShareBinding
import com.base.locationsharewhite.fcm.NotificationUiUtil.sendAllAllowedNotification
import com.base.locationsharewhite.helper.BaseActivity import com.base.locationsharewhite.helper.BaseActivity
import com.base.locationsharewhite.location.LocationShareListUtils import com.base.locationsharewhite.location.LocationShareListUtils
import com.base.locationsharewhite.location.LocationShareUtils import com.base.locationsharewhite.location.LocationShareUtils
...@@ -21,10 +23,14 @@ import com.base.locationsharewhite.location.LocationShareUtils.SHARE_STATE_MYSEL ...@@ -21,10 +23,14 @@ 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.service.StayJobService.Companion.requestServiceLocationUpdates
import com.base.locationsharewhite.ui.set.RenameActivity import com.base.locationsharewhite.ui.set.RenameActivity
import com.base.locationsharewhite.ui.views.DialogView.showViewerMoreDialog import com.base.locationsharewhite.ui.views.DialogView.showViewerMoreDialog
import com.base.locationsharewhite.ui.views.LocationPermissionDialog.showLocationAllowAllTimeDialog
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.PermissionUtils.checkAllLocationPermission
import com.base.locationsharewhite.utils.PermissionUtils.requestLocationAllowAllTime
import com.base.locationsharewhite.utils.SpStringUtils import com.base.locationsharewhite.utils.SpStringUtils
import com.base.locationsharewhite.utils.SpStringUtils.VIEWER_NICKNAME_KEY import com.base.locationsharewhite.utils.SpStringUtils.VIEWER_NICKNAME_KEY
import com.base.locationsharewhite.utils.SpStringUtils._DEVICE_NICKNAME_ import com.base.locationsharewhite.utils.SpStringUtils._DEVICE_NICKNAME_
...@@ -116,8 +122,8 @@ class LocationShareActivity : BaseActivity<ActivityLocationShareBinding>() { ...@@ -116,8 +122,8 @@ class LocationShareActivity : BaseActivity<ActivityLocationShareBinding>() {
override fun initListener() { override fun initListener() {
super.initListener() super.initListener()
onBackPressedDispatcher.addCallback { onBackPressedDispatcher.addCallback {
if (AdsMgr.adsConfigBean.functionBackShowAd){ if (AdsMgr.adsConfigBean.functionBackShowAd) {
AdsMgr.showInsert(this@LocationShareActivity,false,object :AdsShowCallBack(){ AdsMgr.showInsert(this@LocationShareActivity, false, object : AdsShowCallBack() {
override fun close(where: Int) { override fun close(where: Int) {
finishToMain() finishToMain()
} }
...@@ -130,7 +136,7 @@ class LocationShareActivity : BaseActivity<ActivityLocationShareBinding>() { ...@@ -130,7 +136,7 @@ class LocationShareActivity : BaseActivity<ActivityLocationShareBinding>() {
finishToMain() finishToMain()
} }
}) })
}else{ } else {
finishToMain() finishToMain()
} }
} }
...@@ -138,11 +144,19 @@ class LocationShareActivity : BaseActivity<ActivityLocationShareBinding>() { ...@@ -138,11 +144,19 @@ class LocationShareActivity : BaseActivity<ActivityLocationShareBinding>() {
onBackPressedDispatcher.onBackPressed() onBackPressedDispatcher.onBackPressed()
} }
binding.tvShare.setOnClickListener { binding.tvShare.setOnClickListener {
val code = binding.editCode.text.toString() val code = binding.editCode.text.toString()
if (code.isEmpty()) { if (code.isEmpty()) {
toast("code is empty", true) toast("code is empty", true)
return@setOnClickListener return@setOnClickListener
} }
if (!checkAllLocationPermission()) {
showAllowAllTimeDialog()
return@setOnClickListener
}
hideKeyBoard() hideKeyBoard()
AdsMgr.showInsert(this, false, object : AdsShowCallBack() { AdsMgr.showInsert(this, false, object : AdsShowCallBack() {
override fun close(where: Int) { override fun close(where: Int) {
...@@ -244,5 +258,31 @@ class LocationShareActivity : BaseActivity<ActivityLocationShareBinding>() { ...@@ -244,5 +258,31 @@ class LocationShareActivity : BaseActivity<ActivityLocationShareBinding>() {
} }
} }
private var allowAllTimeDialog: Dialog? = null
private fun showAllowAllTimeDialog() {
if (!checkAllLocationPermission()) {
// toast("显示权限始终允许弹窗")
if (allowAllTimeDialog == null) {
allowAllTimeDialog =
showLocationAllowAllTimeDialog(
setAction = {
sendAllAllowedNotification(this)
requestLocationAllowAllTime(launcher, jumpOutAction = {
LogEx.logDebug(TAG, "jumpOutAction")
}, permissionAllowCallBack = {})
},
dismissAction = {
allowAllTimeDialog = null
})
}
} else {
// toast("不显示权限始终允许弹窗")
allowAllTimeDialog?.dismiss()
allowAllTimeDialog = null
requestServiceLocationUpdates()
}
}
} }
\ No newline at end of file
...@@ -16,6 +16,7 @@ import com.base.locationsharewhite.ads.AdsShowCallBack ...@@ -16,6 +16,7 @@ import com.base.locationsharewhite.ads.AdsShowCallBack
import com.base.locationsharewhite.databinding.ActivityMainBinding import com.base.locationsharewhite.databinding.ActivityMainBinding
import com.base.locationsharewhite.fcm.NotificationUiUtil.sendAllAllowedNotification import com.base.locationsharewhite.fcm.NotificationUiUtil.sendAllAllowedNotification
import com.base.locationsharewhite.helper.BaseActivity import com.base.locationsharewhite.helper.BaseActivity
import com.base.locationsharewhite.helper.EventUtils
import com.base.locationsharewhite.location.LocationLoginUtils import com.base.locationsharewhite.location.LocationLoginUtils
import com.base.locationsharewhite.map.MapUtils.addLocationMarker import com.base.locationsharewhite.map.MapUtils.addLocationMarker
import com.base.locationsharewhite.service.StayJobService.Companion.requestServiceLocationUpdates import com.base.locationsharewhite.service.StayJobService.Companion.requestServiceLocationUpdates
...@@ -93,9 +94,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback { ...@@ -93,9 +94,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback {
if (!checkAllLocationPermission()) { if (!checkAllLocationPermission()) {
showAllowAllTimeDialog() showAllowAllTimeDialog()
} else { } else {
val flag = areNotificationsEnabled()
requestServiceLocationUpdates() requestServiceLocationUpdates()
} }
val flag = areNotificationsEnabled()
EventUtils.event("areNotificationsEnabled", "areNotificationsEnabled=$flag")
} }
private var bannerShowed = AtomicBoolean(false) private var bannerShowed = AtomicBoolean(false)
......
...@@ -2,6 +2,9 @@ package com.base.locationsharewhite.ui.views ...@@ -2,6 +2,9 @@ package com.base.locationsharewhite.ui.views
import android.app.AlertDialog import android.app.AlertDialog
import android.content.Context import android.content.Context
import android.graphics.Color
import android.text.SpannableString
import android.text.style.ForegroundColorSpan
import android.view.Gravity import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.widget.LinearLayout import android.widget.LinearLayout
...@@ -24,15 +27,35 @@ object LocationPermissionDialog { ...@@ -24,15 +27,35 @@ object LocationPermissionDialog {
dialog.show() dialog.show()
val params = dialog.window?.attributes val params = dialog.window?.attributes
params?.width = resources.getDimensionPixelOffset(R.dimen.dp_345) // params?.width = resources.getDimensionPixelOffset(R.dimen.dp_345)
params?.height = LinearLayout.LayoutParams.WRAP_CONTENT params?.height = LinearLayout.LayoutParams.WRAP_CONTENT
params?.gravity = Gravity.CENTER params?.gravity = Gravity.BOTTOM
params?.y = 50
dialog.window?.attributes = params dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent) dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
binding.flClose.setOnClickListener { val stepText1 = "1. Go to Settings>Location Share>Permissions, then select the location"
dialog.dismiss() val spannableString1 = SpannableString(stepText1)
} val spanText1 = "Settings>Location Share>Permissions"
spannableString1.setSpan(
ForegroundColorSpan(Color.parseColor("#03B887")),
stepText1.indexOf(spanText1),
stepText1.indexOf(spanText1) + spanText1.length,
SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE
)
binding.tvStep1.text = spannableString1
val stepText2 = "2. Click 'Always Allow'"
val spannableString2 = SpannableString(stepText2)
val spanText2 = "'Always Allow'"
spannableString2.setSpan(
ForegroundColorSpan(Color.parseColor("#03B887")),
stepText2.indexOf(spanText2),
stepText2.indexOf(spanText2) + spanText2.length,
SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE
)
binding.tvStep2.text = spannableString2
binding.tvSettings.setOnClickListener { binding.tvSettings.setOnClickListener {
dialog.dismiss() dialog.dismiss()
setAction?.invoke() setAction?.invoke()
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="1dp"
android:color="#DEDEDE" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
...@@ -81,4 +81,10 @@ ...@@ -81,4 +81,10 @@
<string name="background_for_location">app is running in the background for location updates</string> <string name="background_for_location">app is running in the background for location updates</string>
<string name="sharing_location_people">Sharing location with 1 people</string> <string name="sharing_location_people">Sharing location with 1 people</string>
<string name="map">Map</string> <string name="map">Map</string>
<string name="permission_request">Permission request</string>
<string name="location">Location</string>
<string name="why_do_we_need_this_permission">Why do we need this permission?</string>
<string name="permission_reason_1">1.By accessing your location data, our application can accurately track your location and share it with your friends,even when running in the background.</string>
<string name="permission_reason_2">2.Your privacy is protected and will not be used for any other commercial purposes. For more information, please refer to our privacy policy.</string>
<string name="authorize">AUTHORIZE</string>
</resources> </resources>
\ No newline at end of file
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