Commit 92fa8770 authored by wanglei's avatar wanglei

...

parent 0311dffd
......@@ -170,8 +170,8 @@ object AdsMgr {
adOpenMgr.show(activity, isUnLimit, AdmobEvent("openAd", from), showCallBack)
} else {
admobInitCallBack = {
adOpenMgr.show(activity, isUnLimit, AdmobEvent("openAd", from), showCallBack)
}
adOpenMgr.show(activity, isUnLimit, AdmobEvent("openAd", from), showCallBack)
}
} else {
if (isMaxInit) {
......@@ -243,13 +243,13 @@ object AdsMgr {
*
* @param parent 展示广告的父布局容器
*/
fun showBanner(parent: ViewGroup) {
fun showBanner(parent: ViewGroup, collapsible: Boolean = true) {
if (configBean.isInBlackList) {
EventUtils.event("isInBlackList", configBean.isInBlackList.toString())
return
}
if (adsConfigBean.adSwitch) {
adBannerMgr.show(parent)
adBannerMgr.show(parent,collapsible)
}
}
}
\ No newline at end of file
......@@ -23,7 +23,7 @@ class AdBannerMgr {
private var adView: AdView? = null
private var listener: ViewTreeObserver.OnGlobalLayoutListener? = null
fun show(parent: ViewGroup, adClose: (() -> Unit)? = null) {
fun show(parent: ViewGroup, collapsible: Boolean, adClose: (() -> Unit)? = null) {
if (!AdsMgr.adsConfigBean.adSwitch) {
return
......@@ -51,19 +51,23 @@ class AdBannerMgr {
AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(parent.context, adWidth)
adView?.adUnitId = ConstConfig.ADMOB_BANNER_UNIT_ID
adView?.setAdSize(adSize)
loadAd(admobEvent, adClose)
loadAd(admobEvent, collapsible, adClose)
parent.viewTreeObserver.removeOnGlobalLayoutListener(listener)
}
parent.viewTreeObserver.addOnGlobalLayoutListener(listener)
}
fun loadAd(admobEvent: AdmobEvent, adClose: (() -> Unit)?) {
val extras = Bundle()
extras.putString("collapsible", "bottom")
extras.putString("collapsible_request_id", UUID.randomUUID().toString())
val adRequest =
AdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter::class.java, extras).build()
fun loadAd(admobEvent: AdmobEvent, collapsible: Boolean, adClose: (() -> Unit)?) {
val build = AdRequest.Builder()
if (collapsible) {
val extras = Bundle()
extras.putString("collapsible", "bottom")
extras.putString("collapsible_request_id", UUID.randomUUID().toString())
build.addNetworkExtrasBundle(AdMobAdapter::class.java, extras)
}
val adRequest = build.build()
adView?.adListener =
object : AdListener() {
override fun onAdFailedToLoad(loadAdError: LoadAdError) {
......
......@@ -257,7 +257,7 @@ class AdmobEvent : AdEvent {
val mediationGroupName = extras?.getString("mediation_group_name")
val mediationABTestName = extras?.getString("mediation_ab_test_name")
val mediationABTestVariant = extras?.getString("mediation_ab_test_variant")
obj.put("adUnitId", "nativeAd")
obj.put("ad_unit", "nativeAd")
obj.put("adSourceName", adSourceName)
obj.put("adSourceId", adSourceId)
obj.put("adSourceInstanceName", adSourceInstanceName)
......
......@@ -3,7 +3,7 @@ package com.base.locationsharewhite.bean.config
class PopupConfigBean(
var popupStatus: Boolean = true,
var popupCount: Int = 0,
var popupCount: Int = 24,
var popupStart: Int = 0,
var popupEnd: Int = 24,
var popupInterval: Int = 1,
......
......@@ -16,10 +16,12 @@ import com.base.locationsharewhite.utils.LogEx
import com.hjq.language.MultiLanguages
import java.util.Locale
import java.util.concurrent.atomic.AtomicBoolean
import kotlin.random.Random
abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
private val TAG = javaClass.simpleName
open val TAG = javaClass.simpleName
private val tagNo = Random.nextInt(500)
protected abstract val binding: T
lateinit var launcher: ActivityLauncher
......@@ -29,7 +31,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
onCreateI++
LogEx.logDebug(TAG, "lifecycle onCreate ${javaClass.simpleName} $onCreateI")
LogEx.logDebug(TAG, "lifecycle $tagNo onCreate ${javaClass.simpleName} $onCreateI")
launcher = ActivityLauncher(this)
setContentView(binding.root)
EventUtils.event("page_${javaClass.simpleName}")
......@@ -45,12 +47,19 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
fun finishToMain() {
if (this !is MainActivity && !ActivityManagerUtils.getInstance().isActivityInStack(MainActivity::class.java)) {
val flag = this !is MainActivity && !ActivityManagerUtils.getInstance().isActivityInStack(MainActivity::class.java)
if (flag) {
startActivity(Intent(this, MainActivity::class.java))
}
finish()
}
fun finishToMainTop() {
val intent = Intent(this, MainActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
startActivity(intent)
}
var dialog: Dialog? = null
override fun onDestroy() {
super.onDestroy()
......@@ -66,21 +75,18 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
}
fun changeLanguage(currentActivity: Activity) {
fun changeLanguage(currentActivity: Activity): Boolean {
val spLanguage = Locale(appLanguageSp, appLanguageCountrySp)
val flag = currentLocale != spLanguage
var restart = false
if (flag) {
restart = MultiLanguages.setAppLanguage(this, spLanguage)
if (restart) {
currentLocale = Locale(appLanguageSp, appLanguageCountrySp)
}
}
val restart = MultiLanguages.setAppLanguage(this, spLanguage)
LogEx.logDebug(
TAG, "changeLanguage " +
"flag=$flag restart=$restart currentLocale=$currentLocale spLanguage=$spLanguage"
)
if (restart) {
currentLocale = Locale(appLanguageSp, appLanguageCountrySp)
}
if (flag || restart) {
// 1.使用 recreate 来重启 Activity,效果差,有闪屏的缺陷
// recreate();
......@@ -102,8 +108,9 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
overridePendingTransition(R.anim.activity_alpha_in, R.anim.activity_alpha_out)
finish()
}
return true
}
return false
}
......@@ -115,18 +122,22 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
}
/**
* 避免在onResume--onPause周期内,多次调用
* 在onStop中重置标志
*/
private val onResumeCalled = AtomicBoolean(false)
private var onResumeOneShootI = 0
open fun onResumeOneShoot() {
onResumeOneShootI++
LogEx.logDebug(TAG, "lifecycle onResumeOneShootI ${javaClass.simpleName} $onResumeOneShootI")
LogEx.logDebug(TAG, "lifecycle $tagNo onResumeOneShootI ${javaClass.simpleName} $onResumeOneShootI")
}
private var onResumeI = 0
override fun onResume() {
super.onResume()
onResumeI++
LogEx.logDebug(TAG, "lifecycle onResume ${javaClass.simpleName} $onResumeI")
LogEx.logDebug(TAG, "lifecycle $tagNo onResume ${javaClass.simpleName} $onResumeI")
if (!onResumeCalled.get()) {
onResumeCalled.set(true)
......@@ -138,14 +149,14 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
override fun onStart() {
super.onStart()
onStartI++
LogEx.logDebug(TAG, "lifecycle onStart ${javaClass.simpleName} $onStartI")
LogEx.logDebug(TAG, "lifecycle $tagNo onStart ${javaClass.simpleName} $onStartI")
}
private var onStopI = 0
override fun onStop() {
super.onStop()
onStopI++
LogEx.logDebug(TAG, "lifecycle onStop ${javaClass.simpleName} $onStopI")
LogEx.logDebug(TAG, "lifecycle $tagNo onStop ${javaClass.simpleName} $onStopI")
onResumeCalled.set(false)
}
......@@ -153,7 +164,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
override fun onPause() {
super.onPause()
onPauseI++
LogEx.logDebug(TAG, "lifecycle onPause ${javaClass.simpleName} $onPauseI")
LogEx.logDebug(TAG, "lifecycle $tagNo onPause ${javaClass.simpleName} $onPauseI")
}
}
\ No newline at end of file
......@@ -87,6 +87,9 @@ class MyApplication : Application() {
}
private fun initApp() {
//初始化广告相关业务
AdsMgr.init(appContext)
FacebookSdk.sdkInitialize(applicationContext)
val token = AppPreferences.getInstance().getString("token", "")
val topic = AppConfig.packageName + "_push"
......@@ -94,8 +97,6 @@ class MyApplication : Application() {
FCMManager.initFirebase(this)
FCMManager.subscribeToTopic(topic)
//初始化广告相关业务
AdsMgr.init(appContext)
initConfig()
InstallHelps.init {
......@@ -186,11 +187,12 @@ class MyApplication : Application() {
NewComUtils.requestCfg { config ->
if (config != null) {
AppPreferences.getInstance().put("config", config)
}
LogEx.logDebug("requestCfg", "config=$config")
AppPreferences.getInstance().put("config", config)
initConfig(config)
}
......
......@@ -13,7 +13,6 @@ import com.base.locationsharewhite.utils.BarUtils
class HowUseActivity : BaseActivity<ActivityHowUseBinding>() {
private val TAG = "HowUseActivity"
override val binding: ActivityHowUseBinding by lazy {
ActivityHowUseBinding.inflate(layoutInflater)
}
......
package com.base.locationsharewhite.ui.howuse
import android.content.Intent
import android.graphics.Color
import androidx.activity.addCallback
import androidx.core.view.updatePadding
import androidx.viewpager2.widget.MarginPageTransformer
import com.base.locationsharewhite.R
import com.base.locationsharewhite.ads.AdsMgr
import com.base.locationsharewhite.ads.AdsShowCallBack
import com.base.locationsharewhite.bean.BannerBean
import com.base.locationsharewhite.databinding.ActivityHowUseShareBinding
import com.base.locationsharewhite.helper.BaseActivity
import com.base.locationsharewhite.utils.BarUtils
import com.base.locationsharewhite.utils.LogEx
import com.youth.banner.listener.OnBannerListener
import com.youth.banner.listener.OnPageChangeListener
import com.youth.banner.util.BannerUtils
......@@ -29,6 +29,7 @@ class HowUseShareActivity : BaseActivity<ActivityHowUseShareBinding>() {
initBanner()
step1ui()
AdsMgr.showBanner(binding.flBanner, false)
}
private fun initBanner() {
......@@ -69,8 +70,24 @@ class HowUseShareActivity : BaseActivity<ActivityHowUseShareBinding>() {
override fun initListener() {
super.initListener()
val activity = this
onBackPressedDispatcher.addCallback {
finish()
AdsMgr.showInsert(activity, showCallBack = object : AdsShowCallBack() {
override fun close(where: Int) {
LogEx.logDebug(TAG, "where=$where")
finishToMainTop()
}
override fun failed(where: Int) {
LogEx.logDebug(TAG, "where=$where")
finishToMainTop()
}
override fun googleFailed(where: Int) {
LogEx.logDebug(TAG, "where=$where")
finishToMainTop()
}
})
}
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
......@@ -79,7 +96,7 @@ class HowUseShareActivity : BaseActivity<ActivityHowUseShareBinding>() {
if (uiType == 1) {
step2ui()
} else {
finishToMain()
onBackPressedDispatcher.onBackPressed()
}
}
}
......
......@@ -5,6 +5,8 @@ import androidx.activity.addCallback
import androidx.core.view.updatePadding
import androidx.viewpager2.widget.MarginPageTransformer
import com.base.locationsharewhite.R
import com.base.locationsharewhite.ads.AdsMgr
import com.base.locationsharewhite.ads.AdsShowCallBack
import com.base.locationsharewhite.bean.BannerBean
import com.base.locationsharewhite.databinding.ActivityHowViewOtherBinding
import com.base.locationsharewhite.helper.BaseActivity
......@@ -28,6 +30,7 @@ class HowViewOtherActivity : BaseActivity<ActivityHowViewOtherBinding>() {
initBanner()
step1ui()
AdsMgr.showBanner(binding.flBanner, false)
}
private fun initBanner() {
......@@ -71,7 +74,20 @@ class HowViewOtherActivity : BaseActivity<ActivityHowViewOtherBinding>() {
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
finish()
AdsMgr.showInsert(this@HowViewOtherActivity, showCallBack = object : AdsShowCallBack() {
override fun close(where: Int) {
finishToMain()
}
override fun failed(where: Int) {
finishToMain()
}
override fun googleFailed(where: Int) {
finishToMain()
}
})
}
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
......@@ -80,7 +96,7 @@ class HowViewOtherActivity : BaseActivity<ActivityHowViewOtherBinding>() {
if (uiType == 1) {
step2ui()
} else {
finishToMain()
onBackPressedDispatcher.onBackPressed()
}
}
}
......
......@@ -52,7 +52,6 @@ import kotlinx.coroutines.launch
class LocationMapActivity : BaseActivity<ActivityLocationMapBinding>(), OnMapReadyCallback {
private val TAG = "LocationMapActivity"
private var map: GoogleMap? = null
private lateinit var locationPresenter: LocationPresenter
private lateinit var adapter: ViewingAdapter
......
......@@ -37,7 +37,6 @@ import kotlinx.coroutines.launch
* 添加谁可以看我
*/
class LocationShareActivity : BaseActivity<ActivityLocationShareBinding>() {
private val TAG = "LocationShareActivity"
override val binding: ActivityLocationShareBinding by lazy {
ActivityLocationShareBinding.inflate(layoutInflater)
......
......@@ -13,8 +13,6 @@ import com.base.locationsharewhite.BuildConfig
import com.base.locationsharewhite.R
import com.base.locationsharewhite.ads.AdsMgr
import com.base.locationsharewhite.ads.AdsShowCallBack
import com.base.locationsharewhite.ads.admob.AdBannerMgr
import com.base.locationsharewhite.ads.admob.AdInsertMgr
import com.base.locationsharewhite.bean.config.ConfigBean
import com.base.locationsharewhite.databinding.ActivityMainBinding
import com.base.locationsharewhite.fcm.NotificationUiUtil.sendAllAllowedNotification
......@@ -41,15 +39,10 @@ import com.google.android.gms.maps.SupportMapFragment
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.Marker
import com.google.gson.Gson
import org.json.JSONObject
import java.util.concurrent.atomic.AtomicBoolean
/**
* https://developer.android.com/about/versions/14/changes/data-safety?hl=zh-cn
*/
class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback {
private val TAG = "MainActivity"
private var allowAllTimeDialog: Dialog? = null
override val binding: ActivityMainBinding by lazy {
......@@ -98,6 +91,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback {
private var bannerShowed = AtomicBoolean(false)
override fun onResumeOneShoot() {
super.onResumeOneShoot()
val recreated = changeLanguage(this)
if (recreated) return
if (checkAllLocationPermission()) {
showNotificationDialog()
......@@ -109,12 +104,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback {
mainPresenter.startLocationJob(lifecycleScope)
showAllowAllTimeDialog()
// changeLanguage(this)
val c = ConfigBean()
val json = Gson().toJson(c)
LogEx.logDebug(TAG, "json=$json")
}
private fun showNotificationDialog() {
......@@ -209,18 +198,18 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnMapReadyCallback {
private fun showAdJump(jumpAction: () -> Unit) {
AdsMgr.showInsert(this, false, object : AdsShowCallBack() {
override fun close(where:Int) {
LogEx.logDebug(TAG,"close where=$where")
override fun close(where: Int) {
LogEx.logDebug(TAG, "close where=$where")
jumpAction.invoke()
}
override fun failed(where:Int) {
LogEx.logDebug(TAG,"failed where=$where")
override fun failed(where: Int) {
LogEx.logDebug(TAG, "failed where=$where")
jumpAction.invoke()
}
override fun googleFailed(where:Int) {
LogEx.logDebug(TAG,"googleFailed where=$where")
override fun googleFailed(where: Int) {
LogEx.logDebug(TAG, "googleFailed where=$where")
jumpAction.invoke()
}
})
......
......@@ -3,6 +3,8 @@ package com.base.locationsharewhite.ui.set
import android.content.Intent
import android.graphics.Color
import androidx.core.view.updatePadding
import com.base.locationsharewhite.R
import com.base.locationsharewhite.ads.AdsMgr
import com.base.locationsharewhite.bean.ConstObject.appLanguageCountrySp
import com.base.locationsharewhite.bean.ConstObject.appLanguageSp
import com.base.locationsharewhite.bean.LanguageBean
......@@ -10,14 +12,11 @@ import com.base.locationsharewhite.databinding.ActivityLanguageBinding
import com.base.locationsharewhite.helper.BaseActivity
import com.base.locationsharewhite.ui.howuse.HowUseActivity
import com.base.locationsharewhite.utils.BarUtils
import com.base.locationsharewhite.utils.ToastUtils.toast
import com.hjq.language.MultiLanguages
import com.base.locationsharewhite.utils.LogEx
import java.util.Locale
class LanguageActivity : BaseActivity<ActivityLanguageBinding>() {
private val TAG = "LanguageActivity"
private lateinit var adapter: LanguageAdapter
override val binding: ActivityLanguageBinding by lazy {
......@@ -30,40 +29,24 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>() {
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
isGuide = intent.extras?.getBoolean("isGuide") ?: false
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_app_exit)
adapter = LanguageAdapter(click = { item ->
})
binding.rv.adapter = adapter
initData()
}
private fun initData() {
val languageBeanList = listOf(
LanguageBean(LanguageBean.English, Locale.ENGLISH.language, Locale.ENGLISH.country),
LanguageBean(LanguageBean.简体中文, Locale.SIMPLIFIED_CHINESE.language, Locale.SIMPLIFIED_CHINESE.country),
LanguageBean(LanguageBean.português, Locale("pt", "BR").language, Locale("pt", "BR").country),
LanguageBean(LanguageBean.Español, Locale("es").language, Locale("es").country),
LanguageBean(LanguageBean.Français, Locale.FRENCH.language, Locale.FRENCH.country),
LanguageBean(LanguageBean.Deutsch, Locale.GERMAN.language, Locale.GERMAN.country),
LanguageBean(LanguageBean.ไทย, Locale("th", "TH").language, Locale("th", "TH").country),
LanguageBean(LanguageBean.Bahasa_Indonesia, Locale("in", "ID").language, Locale("in", "ID").country),
LanguageBean(LanguageBean.Melayu, Locale("ms", "MY").language, Locale("ms", "MY").country),
LanguageBean(LanguageBean.Tiếng_Việt, Locale("vi", "VN").language, Locale("vi", "VN").country),
LanguageBean(LanguageBean.日本語, Locale.JAPAN.language, Locale.JAPAN.country),
LanguageBean(LanguageBean.Italiano, Locale.ITALY.language, Locale.ITALY.country),
LanguageBean(LanguageBean.한국인, Locale.KOREAN.language, Locale.KOREAN.country),
LanguageBean(LanguageBean.Nederlands, Locale("nl", "NL").language, Locale("nl", "NL").country),
LanguageBean(LanguageBean.繁體中文, Locale.TRADITIONAL_CHINESE.language, Locale.TRADITIONAL_CHINESE.country),
LanguageBean(LanguageBean.Türk, Locale("tr", "TR").language, Locale("tr", "TR").country),
)
val spLC = appLanguageSp.split("_")
if (spLC.size == 2) {
//匹配语言和国家
languageBeanList.findLast { it.language == spLC[0] && it.country == spLC[1] }?.isSelect = true
} else {
//匹配语言
languageBeanList.findLast { it.language == spLC[0] }?.isSelect = true
}
languageBeanList.findLast { it.language == appLanguageSp && it.country == appLanguageCountrySp }?.isSelect = true
adapter.submitList(languageBeanList)
}
......@@ -74,7 +57,7 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>() {
binding.tvNext.setOnClickListener {
val selectLanguageBean = adapter.items.findLast { it.isSelect }
selectLanguageBean ?: return@setOnClickListener
LogEx.logDebug(TAG, "selectLanguageBean=$selectLanguageBean")
appLanguageSp = selectLanguageBean.language
appLanguageCountrySp = selectLanguageBean.country
......
......@@ -4,9 +4,9 @@ import android.content.Intent
import android.graphics.Color
import androidx.core.view.updatePadding
import com.base.locationsharewhite.R
import com.base.locationsharewhite.ads.AdsMgr
import com.base.locationsharewhite.databinding.ActivityRenameBinding
import com.base.locationsharewhite.helper.BaseActivity
import com.base.locationsharewhite.helper.MyApplication
import com.base.locationsharewhite.location.LocationLoginUtils
import com.base.locationsharewhite.location.LocationNameUtils
import com.base.locationsharewhite.utils.BarUtils
......@@ -18,8 +18,6 @@ import com.base.locationsharewhite.utils.ToastUtils.toast
class RenameActivity : BaseActivity<ActivityRenameBinding>() {
private val TAG = "RenameActivity"
override val binding: ActivityRenameBinding by lazy {
ActivityRenameBinding.inflate(layoutInflater)
}
......@@ -64,6 +62,7 @@ class RenameActivity : BaseActivity<ActivityRenameBinding>() {
}
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_app_exit)
// if (BuildConfig.DEBUG) {
// binding.tvDevice.visibility = View.VISIBLE
// binding.tvDevice.text = AppPreferences.getInstance().getString("uuid", "")
......@@ -79,15 +78,19 @@ class RenameActivity : BaseActivity<ActivityRenameBinding>() {
when (doWhat) {
RENAME_USER_NAME -> {
renameUser()
renameUser {
AdsMgr.showInsert(this)
}
}
RENAME_VIEWER_NICK_NAME -> {
renameViewerNickName()
AdsMgr.showInsert(this)
}
RENAME_VIEWING_NICK_NAME -> {
renameViewingNickName()
AdsMgr.showInsert(this)
}
}
......@@ -130,7 +133,7 @@ class RenameActivity : BaseActivity<ActivityRenameBinding>() {
finish()
}
private fun renameUser() {
private fun renameUser(success: () -> Unit) {
val newName = binding.editName.text.toString()
if (newName.isEmpty()) {
toast(getString(R.string.name_is_empty))
......@@ -140,6 +143,7 @@ class RenameActivity : BaseActivity<ActivityRenameBinding>() {
runOnUiThread {
if (flag) {
toast("Rename success", true)
success.invoke()
} else {
toast("Rename failed", true)
}
......
......@@ -15,7 +15,6 @@ import com.base.locationsharewhite.ui.views.RateDialog.showRateDialog
import com.base.locationsharewhite.utils.BarUtils
class SettingActivity : BaseActivity<ActivitySettingBinding>() {
private val TAG = "SettingActivity"
override val binding: ActivitySettingBinding by lazy {
ActivitySettingBinding.inflate(layoutInflater)
......@@ -61,7 +60,7 @@ class SettingActivity : BaseActivity<ActivitySettingBinding>() {
override fun onResumeOneShoot() {
super.onResumeOneShoot()
// changeLanguage(this)
changeLanguage(this)
}
override fun onResume() {
......
......@@ -7,6 +7,8 @@ import androidx.lifecycle.lifecycleScope
import com.base.locationsharewhite.R
import com.base.locationsharewhite.ads.AdsMgr
import com.base.locationsharewhite.ads.AdsShowCallBack
import com.base.locationsharewhite.bean.ConstObject.appLanguageCountrySp
import com.base.locationsharewhite.bean.ConstObject.appLanguageSp
import com.base.locationsharewhite.bean.ConstObject.ifAgreePrivacy
import com.base.locationsharewhite.bean.ConstObject.isFirstLauncher
import com.base.locationsharewhite.databinding.ActivitySplashBinding
......@@ -17,6 +19,7 @@ import com.base.locationsharewhite.ui.howuse.HowUseActivity
import com.base.locationsharewhite.ui.main.LocationCodeActivity
import com.base.locationsharewhite.ui.main.LocationShareActivity
import com.base.locationsharewhite.ui.main.MainActivity
import com.base.locationsharewhite.ui.set.LanguageActivity
import com.base.locationsharewhite.ui.set.SettingActivity
import com.base.locationsharewhite.utils.BarUtils
import com.base.locationsharewhite.utils.LogEx
......@@ -32,8 +35,6 @@ import java.util.concurrent.atomic.AtomicBoolean
@SuppressLint("CustomSplashScreen")
class SplashActivity : BaseActivity<ActivitySplashBinding>(), SplashView {
private val TAG = "SplashActivity"
private lateinit var splashPresenter: SplashPresenter
private var progressJob: Job? = null
......@@ -162,8 +163,8 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(), SplashView {
}
private fun firstLauncherJump() {
if (Locale.getDefault().language + "_" + Locale.getDefault().country != Locale.ENGLISH.language + "_" + Locale.ENGLISH.country) {
startActivity(Intent(this, HowUseActivity::class.java).apply {
if (appLanguageSp + "_" + appLanguageCountrySp != Locale.ENGLISH.language + "_" + Locale.ENGLISH.country) {
startActivity(Intent(this, LanguageActivity::class.java).apply {
putExtra("isGuide", true)
})
} else {
......
......@@ -119,4 +119,9 @@
</LinearLayout>
<FrameLayout
android:id="@+id/fl_banner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -118,5 +118,10 @@
</LinearLayout>
<FrameLayout
android:id="@+id/fl_banner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -21,13 +21,13 @@
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:paddingHorizontal="16dp"
android:paddingVertical="10dp"
android:id="@+id/tv_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:background="@drawable/bg_03b988_19"
android:paddingHorizontal="16dp"
android:paddingVertical="10dp"
app:layout_constraintBottom_toBottomOf="@id/tv"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tv">
......@@ -58,16 +58,27 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_height="0dp"
android:layout_marginVertical="8dp"
android:overScrollMode="never"
android:paddingTop="16dp"
android:paddingBottom="40dp"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintBottom_toTopOf="@id/fl_ad"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv"
app:spanCount="2"
tools:listitem="@layout/item_language" />
<com.base.locationsharewhite.ads.NativeParentView
android:id="@+id/fl_ad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent">
<include layout="@layout/layout_admob_app_exit" />
</com.base.locationsharewhite.ads.NativeParentView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -78,4 +78,14 @@
android:textSize="18sp"
android:textStyle="bold" />
<com.base.locationsharewhite.ads.NativeParentView
android:id="@+id/fl_ad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp">
<include layout="@layout/layout_admob_app_exit" />
</com.base.locationsharewhite.ads.NativeParentView>
</LinearLayout>
\ No newline at end of file
......@@ -100,7 +100,7 @@
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:visibility="gone">
android:visibility="visible">
<ImageView
android:layout_width="wrap_content"
......
......@@ -2,6 +2,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="345dp"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
......
<resources>
<string name="language">语言</string>
<string name="settings">设置</string>
</resources>
\ No newline at end of file
<resources>
<string name="language">語言</string>
<string name="settings">設置</string>
</resources>
\ No newline at end of file
......@@ -10,7 +10,7 @@
<string name="my_location_code">My Location code</string>
<string name="share_location_code">Share My Location</string>
<string name="share_my_location">Share my location</string>
<string name="how_to_use">How to use?</string>
<string name="how_to_use">How to use?</string>
<string name="settings">Settings</string>
<string name="friends">Friends</string>
<string name="friend_tips">When you send the location code to a friend and they paste it to share the location successfully,it takes about 1–10 minutes to establish the Location sharing link. Be patient Please!</string>
......
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