Commit 60432447 authored by wanglei's avatar wanglei

...

parent 47731a42
......@@ -13,7 +13,7 @@ android {
compileSdk = 34
defaultConfig {
applicationId = "com.tool.advanced.cleaner"
applicationId = "com.tool.advanced.cleaner2"
minSdk = 24
targetSdk = 34
versionCode = 1
......
......@@ -9,7 +9,7 @@
"client_info": {
"mobilesdk_app_id": "1:755421476297:android:c66d8129d83b17e8af6418",
"android_client_info": {
"package_name": "com.tool.advanced.cleaner"
"package_name": "com.tool.advanced.cleaner2"
}
},
"oauth_client": [],
......
......@@ -113,7 +113,7 @@ object AdsMgr {
}
private fun initMax(context: Context) {
private fun initMax(context: Context) = kotlin.runCatching {
val executor = Executors.newSingleThreadExecutor()
......@@ -129,6 +129,7 @@ object AdsMgr {
build.testDeviceAdvertisingIds = Collections.singletonList(currentGaid)
}
val initConfig = build.build()
runCatching {
AppLovinSdk.getInstance(context).initialize(initConfig) {
isMaxInit = true
// maxOpenMgr.loadAd(context)
......@@ -143,6 +144,8 @@ object AdsMgr {
}
}
private var admobInitCallBack: (() -> Unit)? = null
private var maxInitCallBack: (() -> Unit)? = null
......
......@@ -11,6 +11,10 @@ import com.base.locationsharewhite.helper.EventUtils
import com.base.locationsharewhite.utils.AppPreferences
import com.base.locationsharewhite.utils.LogEx
/**
*
*/
class AlarmReceiver : BroadcastReceiver() {
private val TAG = "AlarmJobReceiver"
......
......@@ -7,17 +7,16 @@ import android.content.Context
import android.content.Intent
import com.base.locationsharewhite.BuildConfig
import com.base.locationsharewhite.fcm.work.RepeatingWorker.Companion.schedulePeriodicWork
import com.base.locationsharewhite.service.StayJobService.Companion.startJob
import java.util.Calendar
object AlarmUtils {
fun startAlarm(context: Context, hour: Int) {
context.startJob()
// context.startJob()
//闹钟定时任务
val alarmManager = context.getSystemService(JobService.ALARM_SERVICE) as AlarmManager
val pendingIntent = PendingIntent.getBroadcast(
context, 1, Intent(context, AlarmReceiver::class.java),
context, hour, Intent(context, AlarmReceiver::class.java),
PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
)
val calendar = Calendar.getInstance()
......
......@@ -11,7 +11,7 @@ import com.base.locationsharewhite.service.StayJobService.Companion.startJob
class FileJobReceiver : BroadcastReceiver() {
@SuppressLint("UnsafeProtectedBroadcastReceiver")
override fun onReceive(context: Context?, intent: Intent?) {
context?.startJob()
// context?.startJob()
context?.let {
sendNotificationIfCan(context, PopupConstObject.POPUP_WHERE_FILE_JOB)
}
......
......@@ -31,7 +31,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
lateinit var launcher: ActivityLauncher
private var currentLocale: Locale? = null
var onCreateI = 0
private var onCreateI = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
onCreateI++
......
......@@ -19,6 +19,7 @@ import com.base.locationsharewhite.BuildConfig
import com.base.locationsharewhite.helper.MyApplication
import com.base.locationsharewhite.service.StayNotification.createPermanentNotification
import com.base.locationsharewhite.utils.LogEx
import com.base.locationsharewhite.utils.PermissionUtils.checkAllLocationPermission
import com.base.locationsharewhite.utils.ToastUtils.toast
import com.google.android.gms.location.FusedLocationProviderClient
import com.google.android.gms.location.LocationCallback
......@@ -45,9 +46,9 @@ class StayJobService : JobService() {
builder.setJobSchedulerJobIdRange(0, 1000)
}
private val TAG = "StayJobService"
companion object {
private val TAG = "StayJobService"
val ACTION_LOCATION_UPDATES = "ACTION_REQUEST_LOCATION_UPDATES"
val NOTIFICATION_PERMANENT_ID = 186
var googleLocation: LatLng? = null
......@@ -71,6 +72,8 @@ class StayJobService : JobService() {
private const val JOB_PERIODIC: Long = 5 * 1000L
fun Context.startJob() {
if (isRunning) return
if (!checkAllLocationPermission()) return
LogEx.logDebug(TAG, "startJob")
val jobScheduler = getSystemService(JOB_SCHEDULER_SERVICE) as JobScheduler
val componentName = ComponentName(this, StayJobService::class.java)
val jobInfo = JobInfo.Builder(JOB_INFO_ID, componentName)
......
......@@ -25,9 +25,12 @@ class HowUseActivity : BaseActivity<ActivityHowUseBinding>() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.WHITE)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
}
// val recreated = changeLanguage(this, intent.extras ?: Bundle())
// if (recreated) return
override fun onResumeOneShoot() {
super.onResumeOneShoot()
val recreated = changeLanguage(this, intent.extras ?: Bundle())
if (recreated) return
isGuide = intent.extras?.getBoolean("isGuide", false) ?: false
LogEx.logDebug(TAG, "isGuide=$isGuide")
......@@ -50,12 +53,6 @@ class HowUseActivity : BaseActivity<ActivityHowUseBinding>() {
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_app_exit)
}
override fun onResumeOneShoot() {
super.onResumeOneShoot()
val recreated = changeLanguage(this, intent.extras ?: Bundle())
if (recreated) return
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
......
......@@ -79,10 +79,39 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
// binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
locationPresenter = LocationPresenter(this, lifecycleScope)
}
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()
}
}
override fun onResumeOneShoot() {
super.onResumeOneShoot()
val recreated = changeLanguage(this)
if (recreated) return
binding.ivPermission.isVisible = !checkAllLocationPermission()
if (checkAllLocationPermission()) {
if (AdsMgr.adsConfigBean.functionInShowAd) {
AdsMgr.showInsert(this, showCallBack = object : AdsShowCallBack() {
......@@ -112,36 +141,6 @@ class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapRea
showAllowAllTimeDialog()
}
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()
}
}
override fun onResumeOneShoot() {
super.onResumeOneShoot()
binding.ivPermission.isVisible = !checkAllLocationPermission()
}
private fun initAdapter() {
......
......@@ -26,10 +26,14 @@ class LocationCodeActivity : BaseActivity<ActivityLocationCodeBinding>() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.WHITE)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
}
override fun onResumeOneShoot() {
super.onResumeOneShoot()
val recreated = changeLanguage(this)
if (recreated) return
if (AdsMgr.adsConfigBean.functionInShowAd) {
AdsMgr.showInsert(this, showCallBack = object : AdsShowCallBack() {
override fun close(where: Int) {
......@@ -66,12 +70,6 @@ class LocationCodeActivity : BaseActivity<ActivityLocationCodeBinding>() {
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_app_exit)
}
override fun onResumeOneShoot() {
super.onResumeOneShoot()
val recreated = changeLanguage(this)
if (recreated) return
}
private fun copy() {
copyText("MyLocationCode", binding.tvCode.text.toString())
toast(resources.getString(R.string.copy), true)
......
......@@ -55,7 +55,11 @@ class LocationShareActivity : BaseActivity<ActivityLocationShareBinding>() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.WHITE)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
}
@SuppressLint("NotifyDataSetChanged")
override fun onResumeOneShoot() {
super.onResumeOneShoot()
val recreated = changeLanguage(this)
if (recreated) return
......@@ -114,12 +118,6 @@ class LocationShareActivity : BaseActivity<ActivityLocationShareBinding>() {
initShareData()
}
override fun onResumeOneShoot() {
super.onResumeOneShoot()
val recreated = changeLanguage(this)
if (recreated) return
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
......
......@@ -19,6 +19,7 @@ import com.base.locationsharewhite.helper.EventUtils
import com.base.locationsharewhite.location.LocationLoginUtils
import com.base.locationsharewhite.map.MapUtils.addLocationMarker
import com.base.locationsharewhite.service.StayJobService.Companion.requestServiceLocationUpdates
import com.base.locationsharewhite.service.StayJobService.Companion.startJob
import com.base.locationsharewhite.ui.howuse.HowUseActivity
import com.base.locationsharewhite.ui.locationmap.LocationMapActivity
import com.base.locationsharewhite.ui.set.SettingActivity
......@@ -29,6 +30,7 @@ import com.base.locationsharewhite.utils.LogEx
import com.base.locationsharewhite.utils.PermissionUtils.areNotificationsEnabled
import com.base.locationsharewhite.utils.PermissionUtils.checkAllLocationPermission
import com.base.locationsharewhite.utils.PermissionUtils.requestLocationAllowAllTime
import com.base.locationsharewhite.utils.ToastUtils.toast
import com.google.android.gms.maps.CameraUpdateFactory
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.OnMapReadyCallback
......@@ -46,7 +48,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback {
}
private var map: GoogleMap? = null
private lateinit var mainPresenter: MainPresenter
private var mainPresenter: MainPresenter? = null
private var marker: Marker? = null
private var actionId: Int? = null
......@@ -56,13 +58,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback {
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
val recreated = changeLanguage(this, intent.extras ?: Bundle())
if (recreated) return
mainPresenter = MainPresenter(this)
actionId = intent.extras?.getInt("actionId")
val where = intent.extras?.getString("where")
LogEx.logDebug(TAG, "initView actionId=$actionId where=$where", true)
//
// val flag1 = checkLocationPermission()
// val flag2 = checkBackgroundLocationPermission()
......@@ -80,6 +76,20 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback {
//
// }
// }
}
private var bannerShowed = AtomicBoolean(false)
override fun onResumeOneShoot() {
super.onResumeOneShoot()
val recreated = changeLanguage(this, intent.extras ?: Bundle())
if (recreated) return
mainPresenter = MainPresenter(this)
actionId = intent.extras?.getInt("actionId")
val where = intent.extras?.getString("where")
LogEx.logDebug(TAG, "initView actionId=$actionId where=$where", true)
if (!bannerShowed.get()) {
bannerShowed.set(true)
AdsMgr.showBanner(binding.flAd) {
......@@ -90,14 +100,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback {
}
}
}
}
private var bannerShowed = AtomicBoolean(false)
override fun onResumeOneShoot() {
super.onResumeOneShoot()
val recreated = changeLanguage(this)
if (recreated) return
LocationLoginUtils.login()
......@@ -105,7 +107,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback {
supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment?
mapFragment?.getMapAsync(this)
mainPresenter.startLocationJob(lifecycleScope)
mainPresenter?.startLocationJob(lifecycleScope)
val flag = areNotificationsEnabled()
EventUtils.event("areNotificationsEnabled", "areNotificationsEnabled=$flag")
......@@ -124,7 +126,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback {
override fun onStop() {
super.onStop()
mainPresenter.cancelLocationJob()
mainPresenter?.cancelLocationJob()
}
......@@ -137,7 +139,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback {
requestLocationAllowAllTime(launcher, jumpOutAction = {
LogEx.logDebug(TAG, "jumpOutAction")
}, permissionAllowCallBack = {
if (BuildConfig.DEBUG) {
toast("startJob")
}
this.startJob()
})
},
dismissAction = {
......@@ -215,8 +220,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback {
map = googleMap
LogEx.logDebug(TAG, "onMapReady")
mainPresenter.startLocationJob(lifecycleScope)
mainPresenter.uiLocationCallback = {
mainPresenter?.startLocationJob(lifecycleScope)
mainPresenter?.uiLocationCallback = {
LogEx.logDebug(TAG, "uiLocationCallback $it")
changeLocation(it, true, reSetZoom)
reSetZoom = false
......
package com.base.locationsharewhite.ui.main
import android.annotation.SuppressLint
import android.app.Activity
import android.location.Location
import android.os.Looper
import androidx.lifecycle.LifecycleCoroutineScope
import com.base.locationsharewhite.map.MapUtils.getLatLngByLocationManager
import com.base.locationsharewhite.service.StayJobService
import com.base.locationsharewhite.utils.LogEx
import com.google.android.gms.location.FusedLocationProviderClient
import com.google.android.gms.location.LocationCallback
import com.google.android.gms.location.LocationRequest
import com.google.android.gms.location.LocationResult
import com.google.android.gms.location.LocationServices
import com.google.android.gms.maps.model.LatLng
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
......
......@@ -2,6 +2,7 @@ package com.base.locationsharewhite.ui.set
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import androidx.activity.addCallback
import androidx.core.view.updatePadding
import com.base.locationsharewhite.R
......@@ -46,9 +47,18 @@ class RenameActivity : BaseActivity<ActivityRenameBinding>() {
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
val recreated = changeLanguage(this)
}
override fun onResumeOneShoot() {
super.onResumeOneShoot()
val recreated = changeLanguage(this, intent.extras ?: Bundle())
if (recreated) return
doWhat = intent.extras?.getString("doWhat", RENAME_USER_NAME) ?: RENAME_USER_NAME
device = intent?.extras?.getString("device", "") ?: ""
nickName = intent?.extras?.getString("nickName", "") ?: ""
if (AdsMgr.adsConfigBean.functionInShowAd) {
AdsMgr.showInsert(this, showCallBack = object : AdsShowCallBack() {
override fun close(where: Int) {
......@@ -62,10 +72,6 @@ class RenameActivity : BaseActivity<ActivityRenameBinding>() {
})
}
doWhat = intent.extras?.getString("doWhat", RENAME_USER_NAME) ?: RENAME_USER_NAME
device = intent?.extras?.getString("device", "") ?: ""
nickName = intent?.extras?.getString("nickName", "") ?: ""
if (doWhat == RENAME_USER_NAME) {
binding.editName.setText(LocationLoginUtils.myNickNameSp)
}
......@@ -83,17 +89,11 @@ class RenameActivity : BaseActivity<ActivityRenameBinding>() {
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_app_exit)
}
override fun onResumeOneShoot() {
super.onResumeOneShoot()
val recreated = changeLanguage(this)
if (recreated) return
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
if (AdsMgr.adsConfigBean.functionBackShowAd) {
AdsMgr.showInsert(this@RenameActivity,false,object : AdsShowCallBack() {
AdsMgr.showInsert(this@RenameActivity, false, object : AdsShowCallBack() {
override fun close(where: Int) {
finishToMain()
}
......@@ -106,7 +106,7 @@ class RenameActivity : BaseActivity<ActivityRenameBinding>() {
finishToMain()
}
})
}else{
} else {
finishToMain()
}
}
......
......@@ -115,7 +115,6 @@ object PermissionUtils {
) {
val TAG = "requestLocationAllowAllTime"
launcher.launch(
arrayOf(
Manifest.permission.ACCESS_FINE_LOCATION,
......
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