Commit ad544b67 authored by wanglei's avatar wanglei

...

parent 2c78df18
...@@ -26,26 +26,43 @@ ...@@ -26,26 +26,43 @@
android:theme="@style/Theme.DataRecovery" android:theme="@style/Theme.DataRecovery"
tools:targetApi="34"> tools:targetApi="34">
<activity <activity
android:name=".activity.screenshot.ScreenShotAnimationActivity" android:name=".activity.guide.GuideActivity"
android:exported="false" android:exported="true"
android:theme="@style/Theme.DataRecovery" /> android:launchMode="singleTop"
<activity android:screenOrientation="portrait"
android:name=".activity.repeat.RepeatAnimationActivity" tools:ignore="DiscouragedApi,LockedOrientationActivity" />
android:exported="false" />
<activity
android:name=".activity.SettingActivity"
android:exported="false" />
<activity <activity
android:name=".activity.SplashActivity" android:name=".activity.SplashActivity"
android:exported="true" android:exported="true"
android:launchMode="singleTask" android:launchMode="singleTask"
android:theme="@style/splash.theme"> android:theme="@style/splash.theme">
<intent-filter> <!-- <intent-filter>-->
<action android:name="android.intent.action.MAIN" /> <!-- <action android:name="android.intent.action.MAIN" />-->
<category android:name="android.intent.category.LAUNCHER" /> <!-- <category android:name="android.intent.category.LAUNCHER" />-->
</intent-filter> <!-- </intent-filter>-->
</activity> </activity>
<activity
android:name=".activity.repeat.RepeatAnimationActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.SettingActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.screenshot.ScreenShotAnimationActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Theme.DataRecovery"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity <activity
android:name=".activity.MainActivity" android:name=".activity.MainActivity"
android:exported="false" android:exported="false"
...@@ -147,6 +164,7 @@ ...@@ -147,6 +164,7 @@
android:launchMode="singleTop" android:launchMode="singleTop"
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<meta-data <meta-data
android:name="com.google.android.gms.ads.flag.OPTIMIZE_INITIALIZATION" android:name="com.google.android.gms.ads.flag.OPTIMIZE_INITIALIZATION"
android:value="true" /> android:value="true" />
...@@ -159,8 +177,6 @@ ...@@ -159,8 +177,6 @@
<service <service
android:name=".service.StayNotificationService" android:name=".service.StayNotificationService"
android:permission="android.permission.FOREGROUND_SERVICE" /> android:permission="android.permission.FOREGROUND_SERVICE" />
<service <service
android:name=".fcm.MessagingService" android:name=".fcm.MessagingService"
android:exported="true"> android:exported="true">
...@@ -171,9 +187,7 @@ ...@@ -171,9 +187,7 @@
<receiver <receiver
android:name=".fcm.CloseNotificationReceiver" android:name=".fcm.CloseNotificationReceiver"
android:exported="false" /> android:exported="false" /> <!-- 添加以下接收器 -->
<!-- 添加以下接收器 -->
<!-- 注册广播 --> <!-- 注册广播 -->
<receiver <receiver
android:name=".fcm.FcmReceiver" android:name=".fcm.FcmReceiver"
...@@ -193,7 +207,6 @@ ...@@ -193,7 +207,6 @@
<meta-data <meta-data
android:name="com.facebook.sdk.ApplicationId" android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" /> android:value="@string/facebook_app_id" />
</application> </application>
</manifest> </manifest>
\ No newline at end of file
...@@ -11,6 +11,7 @@ import android.util.Log ...@@ -11,6 +11,7 @@ import android.util.Log
import android.view.View import android.view.View
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.datarecovery.MyApplication import com.base.datarecovery.MyApplication
import com.base.datarecovery.activity.guide.GuideActivity
import com.base.datarecovery.activity.junkclean.ScanJunkActivity import com.base.datarecovery.activity.junkclean.ScanJunkActivity
import com.base.datarecovery.activity.privacyspace.PrivacyPinOneActivity import com.base.datarecovery.activity.privacyspace.PrivacyPinOneActivity
import com.base.datarecovery.activity.privacyspace.PrivacySpaceActivity import com.base.datarecovery.activity.privacyspace.PrivacySpaceActivity
...@@ -33,6 +34,7 @@ import com.base.datarecovery.bean.ConstObject.ID_RECOVERY_VIDEOS ...@@ -33,6 +34,7 @@ import com.base.datarecovery.bean.ConstObject.ID_RECOVERY_VIDEOS
import com.base.datarecovery.bean.ConstObject.ID_SCREENSHOT_CLEAN import com.base.datarecovery.bean.ConstObject.ID_SCREENSHOT_CLEAN
import com.base.datarecovery.bean.ConstObject.ID_SIMILAR_IMAGE import com.base.datarecovery.bean.ConstObject.ID_SIMILAR_IMAGE
import com.base.datarecovery.bean.ConstObject.ifAgreePrivacy import com.base.datarecovery.bean.ConstObject.ifAgreePrivacy
import com.base.datarecovery.bean.ConstObject.isGuide
import com.base.datarecovery.bean.ConstObject.privacyPinPassword import com.base.datarecovery.bean.ConstObject.privacyPinPassword
import com.base.datarecovery.databinding.ActivitySplashBinding import com.base.datarecovery.databinding.ActivitySplashBinding
import com.base.datarecovery.fcm.CloseNotificationReceiver import com.base.datarecovery.fcm.CloseNotificationReceiver
...@@ -178,7 +180,11 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() { ...@@ -178,7 +180,11 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
else -> { else -> {
val isHotLaunch = intent?.extras?.getBoolean("isHotLaunch", false) ?: false val isHotLaunch = intent?.extras?.getBoolean("isHotLaunch", false) ?: false
if (!isHotLaunch) { if (!isHotLaunch) {
startActivity(Intent(this@SplashActivity, MainActivity::class.java)) if (!isGuide) {
startActivity(Intent(this@SplashActivity, GuideActivity::class.java))
} else {
startActivity(Intent(this@SplashActivity, MainActivity::class.java))
}
} }
} }
} }
......
package com.base.datarecovery.activity.guide
import android.graphics.Color
import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
import com.base.datarecovery.R
import com.base.datarecovery.databinding.ActivityGuideBinding
import com.base.datarecovery.fragment.GuideFragment
import com.base.datarecovery.help.BaseActivity
import com.base.datarecovery.utils.BarUtils
class GuideActivity : BaseActivity<ActivityGuideBinding>() {
private val page1: GuideFragment by lazy {
GuideFragment(1)
}
private val page2: GuideFragment by lazy {
GuideFragment(1)
}
private val fragments by lazy {
mutableListOf(page1, page2)
}
override val binding: ActivityGuideBinding by lazy {
ActivityGuideBinding.inflate(layoutInflater)
}
fun setPosition(position:Int){
binding.viewpager2.currentItem = position
}
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.viewpager2.run {
adapter = object : FragmentStateAdapter(this@GuideActivity) {
override fun getItemCount(): Int {
return fragments.size
}
override fun createFragment(position: Int): Fragment {
return fragments[position]
}
}
}
binding.viewpager2.registerOnPageChangeCallback(object :
ViewPager2.OnPageChangeCallback() {
override fun onPageSelected(position: Int) {
}
})
}
}
\ No newline at end of file
...@@ -66,13 +66,13 @@ object AdMaxInterstitialUtils { ...@@ -66,13 +66,13 @@ object AdMaxInterstitialUtils {
override fun onAdDisplayed(p0: MaxAd) { override fun onAdDisplayed(p0: MaxAd) {
LogEx.logDebug(TAG, "onAdDisplayed") LogEx.logDebug(TAG, "onAdDisplayed")
AdDisplayUtils.getInstance().incrementAdDisplayCount() AdDisplayUtils.getInstance().incrementAdDisplayCount()
AdMaxEvent.showAd(p0, "interAd",activity) AdMaxEvent.showAd(p0, "interAd", activity)
} }
override fun onAdHidden(p0: MaxAd) { override fun onAdHidden(p0: MaxAd) {
LogEx.logDebug(TAG, "onAdHidden") LogEx.logDebug(TAG, "onAdHidden")
onHidden?.invoke() onHidden?.invoke()
interstitialAd?.loadAd() loadInterstitialAd(activity)
} }
override fun onAdClicked(p0: MaxAd) { override fun onAdClicked(p0: MaxAd) {
......
...@@ -107,7 +107,7 @@ object AdMaxNativeUtils { ...@@ -107,7 +107,7 @@ object AdMaxNativeUtils {
} }
fun showNativeAd(activity: Activity, parent: ViewGroup, layout: Int ) { fun showNativeAd(activity: Activity, parent: ViewGroup, layout: Int) {
setNativeAdListener() setNativeAdListener()
if (!AdDisplayUtils.getInstance().shouldShowAd("nativeAd")) { if (!AdDisplayUtils.getInstance().shouldShowAd("nativeAd")) {
return return
...@@ -126,7 +126,7 @@ object AdMaxNativeUtils { ...@@ -126,7 +126,7 @@ object AdMaxNativeUtils {
nativeAdLoader.render(adView, nativeAd) nativeAdLoader.render(adView, nativeAd)
parent.removeAllViews() parent.removeAllViews()
parent.addView(adView) parent.addView(adView)
nativeAd?.let { AdMaxEvent.showAd(it, "nativeAd") } nativeAd?.let { AdMaxEvent.showAd(it, "nativeAd", activity) }
AdDisplayUtils.getInstance().incrementAdDisplayCount() AdDisplayUtils.getInstance().incrementAdDisplayCount()
} }
} }
......
...@@ -20,29 +20,29 @@ object AdMaxOpenUtils { ...@@ -20,29 +20,29 @@ object AdMaxOpenUtils {
private var onHidden: (() -> Unit)? = null private var onHidden: (() -> Unit)? = null
private var loadingListener: (() -> Unit)? = null private var loadingListener: (() -> Unit)? = null
private fun setListener(context: Context) { private fun setListener(activity: Activity) {
if (appOpenAd == null) { if (appOpenAd == null) {
appOpenAd = MaxAppOpenAd(ConfigHelper.openAdMaxId, context) appOpenAd = MaxAppOpenAd(ConfigHelper.openAdMaxId, activity)
appOpenAd?.setListener(object : MaxAdListener { appOpenAd?.setListener(object : MaxAdListener {
override fun onAdLoaded(p0: MaxAd) { override fun onAdLoaded(p0: MaxAd) {
LogEx.logDebug(TAG, "onAdLoaded") LogEx.logDebug(TAG, "onAdLoaded")
openLoadTime = System.currentTimeMillis() openLoadTime = System.currentTimeMillis()
loadingListener?.invoke() loadingListener?.invoke()
AdMaxEvent.pullAd(p0,"openAd") AdMaxEvent.pullAd(p0, "openAd")
} }
override fun onAdLoadFailed(p0: String, p1: MaxError) { override fun onAdLoadFailed(p0: String, p1: MaxError) {
LogEx.logDebug(TAG, "onAdLoadFailed:"+p1.message.toString()) LogEx.logDebug(TAG, "onAdLoadFailed:" + p1.message.toString())
onHidden?.invoke() onHidden?.invoke()
AdDisplayUtils.getInstance().incrementAdRequestFailCount() AdDisplayUtils.getInstance().incrementAdRequestFailCount()
AdMaxEvent.pullAd(null,"openAd") AdMaxEvent.pullAd(null, "openAd")
} }
override fun onAdDisplayed(p0: MaxAd) { override fun onAdDisplayed(p0: MaxAd) {
AdDisplayUtils.getInstance().incrementAdDisplayCount() AdDisplayUtils.getInstance().incrementAdDisplayCount()
AdMaxEvent.showAd(p0,"openAd") AdMaxEvent.showAd(p0, "openAd", activity)
} }
override fun onAdHidden(p0: MaxAd) { override fun onAdHidden(p0: MaxAd) {
...@@ -55,7 +55,7 @@ object AdMaxOpenUtils { ...@@ -55,7 +55,7 @@ object AdMaxOpenUtils {
AdDisplayUtils.getInstance().incrementAdClickCount() AdDisplayUtils.getInstance().incrementAdClickCount()
// com.base.datarecovery.ads.max.AdMaxEvent.clickAd(appOpenAd, "openAd") // com.base.datarecovery.ads.max.AdMaxEvent.clickAd(appOpenAd, "openAd")
AdmobCommonUtils.isMultiClick(appOpenAd) AdmobCommonUtils.isMultiClick(appOpenAd)
AdMaxEvent.clickAd(p0,"openAd") AdMaxEvent.clickAd(p0, "openAd")
} }
...@@ -71,7 +71,7 @@ object AdMaxOpenUtils { ...@@ -71,7 +71,7 @@ object AdMaxOpenUtils {
} }
}) })
appOpenAd?.setRevenueListener (AdMaxEvent.EventOnPaidEventListener()) appOpenAd?.setRevenueListener(AdMaxEvent.EventOnPaidEventListener())
} }
} }
......
...@@ -34,6 +34,14 @@ object ConstObject { ...@@ -34,6 +34,14 @@ object ConstObject {
field = value field = value
AppPreferences.getInstance().put("ifAgreePrivacy", value, true) AppPreferences.getInstance().put("ifAgreePrivacy", value, true)
} }
var isGuide = false
get() {
return AppPreferences.getInstance().getBoolean("isGuide", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("isGuide", value, true)
}
var rememberOption = false var rememberOption = false
get() { get() {
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.guide.GuideActivity">
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewpager2"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.25"
tools:ignore="ContentDescription"
tools:src="@mipmap/ydytu1" />
<View
android:id="@+id/ll"
android:layout_width="wrap_content"
android:layout_height="120dp"
android:layout_marginTop="50dp"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="@id/iv"
app:layout_constraintStart_toStartOf="@id/iv"
app:layout_constraintTop_toBottomOf="@id/iv">
</View>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/tv_btn"
app:layout_constraintTop_toBottomOf="@id/ll"
tools:ignore="UselessLeaf" />
<View
android:id="@+id/tv_btn"
android:layout_width="164dp"
android:layout_height="45dp"
android:layout_marginBottom="100dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:ignore="MissingConstraints" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ 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