Commit d66a36b3 authored by wanglei's avatar wanglei

...

parent bdd92431
......@@ -59,13 +59,13 @@
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.appmanager.AppManagerAnimationActivity"
android:name=".activity.appprocess.AppProcessAnimationActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.appmanager.AppManagerActivity"
android:name=".activity.appprocess.AppProcessActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
......
......@@ -7,30 +7,22 @@ import android.net.Uri
import android.text.SpannableString
import android.text.Spanned
import android.text.style.UnderlineSpan
import android.util.Log
import android.view.View
import androidx.lifecycle.lifecycleScope
import com.base.datarecovery.MyApplication
import com.base.datarecovery.activity.appprocess.AppProcessAnimationActivity
import com.base.datarecovery.activity.guide.GuideActivity
import com.base.datarecovery.activity.junkclean.ScanJunkActivity
import com.base.datarecovery.activity.largefile.LargeFileActivity
import com.base.datarecovery.activity.largefile.LargeFileAnimationActivity
import com.base.datarecovery.activity.photomanager.PhotoManagerAnimationActivity
import com.base.datarecovery.activity.privacyspace.PrivacyPinOneActivity
import com.base.datarecovery.activity.privacyspace.PrivacySpaceActivity
import com.base.datarecovery.activity.recovery.FileScanResultActivity
import com.base.datarecovery.activity.repeat.RepeatActivity
import com.base.datarecovery.activity.repeat.RepeatAnimationActivity
import com.base.datarecovery.activity.screenshot.ScreenShotActivity
import com.base.datarecovery.activity.screenshot.ScreenShotAnimationActivity
import com.base.datarecovery.activity.whatsapp.WhatsAppCleanerAnimationActivity
import com.base.datarecovery.ads.AdmobMaxHelper
import com.base.datarecovery.ads.admob.AdmobInterstitialUtils
import com.base.datarecovery.ads.admob.AdmobNativeUtils
import com.base.datarecovery.ads.admob.AdmobOpenUtils
import com.base.datarecovery.ads.max.AdMaxInit.maxInitAction
import com.base.datarecovery.ads.max.AdMaxInterstitialUtils
import com.base.datarecovery.ads.max.AdMaxOpenUtils
import com.base.datarecovery.bean.ConstObject
import com.base.datarecovery.bean.ConstObject.ID_APP_MANAGER
import com.base.datarecovery.bean.ConstObject.ID_APP_PROCESS
import com.base.datarecovery.bean.ConstObject.ID_JUNK_CLEAN_PUSH
import com.base.datarecovery.bean.ConstObject.ID_LARGE_FILE
import com.base.datarecovery.bean.ConstObject.ID_PRIVACY_SPACE
......@@ -189,11 +181,11 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
}
ID_LARGE_FILE -> {
startActivity(Intent(this, LargeFileAnimationActivity::class.java))
}
ID_APP_MANAGER -> {
ID_APP_PROCESS -> {
startActivity(Intent(this, AppProcessAnimationActivity::class.java))
}
else -> {
......
package com.base.datarecovery.activity.appmanager
package com.base.datarecovery.activity.appprocess
import android.annotation.SuppressLint
import android.content.Context
......@@ -16,17 +16,14 @@ import com.base.datarecovery.bean.AppBean
import com.base.datarecovery.databinding.ActivityAppManagerBinding
import com.base.datarecovery.help.BaseActivity
import com.base.datarecovery.help.KotlinExt.toFormatSize
import com.base.datarecovery.help.PermissionHelp.checkStorePermission
import com.base.datarecovery.help.PermissionHelp.requestStorePermission
import com.base.datarecovery.utils.BarUtils
import com.base.datarecovery.utils.RamUtils.ramPair
import com.base.datarecovery.view.DialogViews.showExitFunctionDialog
import com.base.datarecovery.view.DialogViews.showGerPermission
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
class AppProcessActivity : BaseActivity<ActivityAppManagerBinding>() {
override val binding: ActivityAppManagerBinding by lazy {
ActivityAppManagerBinding.inflate(layoutInflater)
......@@ -80,7 +77,7 @@ class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
val list = arrayListOf<AppBean>()
packages.forEach { app ->
if (isLaunchApp(this@AppManagerActivity, app)) {
if (isLaunchApp(this@AppProcessActivity, app)) {
val appBean = AppBean(
app.applicationInfo.loadIcon(pm),
......
package com.base.datarecovery.activity.appmanager
package com.base.datarecovery.activity.appprocess
import android.annotation.SuppressLint
import android.content.Intent
......@@ -14,7 +14,7 @@ import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlin.random.Random
class AppManagerAnimationActivity : BaseActivity<ActivityAppManagerAnimationBinding>() {
class AppProcessAnimationActivity : BaseActivity<ActivityAppManagerAnimationBinding>() {
override val binding: ActivityAppManagerAnimationBinding by lazy {
ActivityAppManagerAnimationBinding.inflate(layoutInflater)
......@@ -26,7 +26,7 @@ class AppManagerAnimationActivity : BaseActivity<ActivityAppManagerAnimationBind
override fun initListener() {
onBackPressedDispatcher.addCallback {
Toast.makeText(this@AppManagerAnimationActivity, "wait a moment", Toast.LENGTH_SHORT).show()
Toast.makeText(this@AppProcessAnimationActivity, "wait a moment", Toast.LENGTH_SHORT).show()
}
}
......@@ -43,8 +43,8 @@ class AppManagerAnimationActivity : BaseActivity<ActivityAppManagerAnimationBind
binding.tv.text = "Completed!"
delay(1000)
AdmobMaxHelper.admobMaxShowInterstitialAd(this@AppManagerAnimationActivity){
startActivity(Intent(this@AppManagerAnimationActivity, AppManagerActivity::class.java))
AdmobMaxHelper.admobMaxShowInterstitialAd(this@AppProcessAnimationActivity) {
startActivity(Intent(this@AppProcessAnimationActivity, AppProcessActivity::class.java))
finish()
}
......
......@@ -65,11 +65,15 @@ class LargeFileActivity : BaseActivity<ActivityLargeFileBinding>() {
if (checkStorePermission()) {
initData()
} else {
showGerPermission(null, deny = { finishToMain() }, allow = {
requestStorePermission(launcher) {
if (it) initData() else finishToMain()
}
})
showGerPermission(
"This feature requires access to your storage to scan your large files and clean up large files." +
"We will not transmit your data to any third-party service. Please grant permission so that we can provide you with better service.",
deny = { finishToMain() },
allow = {
requestStorePermission(launcher) {
if (it) initData() else finishToMain()
}
})
}
}
......
......@@ -7,7 +7,7 @@ import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.datarecovery.R
import com.base.datarecovery.bean.ConstObject.APP_MANAGER
import com.base.datarecovery.bean.ConstObject.APP_PROCESS
import com.base.datarecovery.bean.ConstObject.JUNK_CLEANER
import com.base.datarecovery.bean.ConstObject.LARGE_FILE
import com.base.datarecovery.bean.ConstObject.PRIVACY_SPACE
......@@ -18,7 +18,6 @@ import com.base.datarecovery.bean.ConstObject.REPEAT_PHOTOS
import com.base.datarecovery.bean.ConstObject.SCREENSHOT_CLEANER
import com.base.datarecovery.bean.ConstObject.WHATSAPP_CLEANER
import com.base.datarecovery.databinding.ItemResultFun2Binding
import com.base.datarecovery.databinding.ItemResultFunBinding
import com.base.datarecovery.utils.AppPreferences
import com.base.datarecovery.view.XmlEx.inflate
import java.util.Collections
......@@ -36,7 +35,7 @@ class AppFunctionAdapter(val click: (name: String) -> Unit) :
Fun(SCREENSHOT_CLEANER, R.mipmap.screenshots),
Fun(WHATSAPP_CLEANER, R.mipmap.whatsapp),
Fun(LARGE_FILE, R.mipmap.large),
Fun(APP_MANAGER, R.mipmap.app),
Fun(APP_PROCESS, R.mipmap.app),
)
class JJJ(view: View) : ViewHolder(view)
......
......@@ -13,7 +13,7 @@ object ConstObject {
const val ID_PRIVACY_SPACE = 13003
const val ID_WHATSAPP_CLEANER = 13006
const val ID_LARGE_FILE = 13009
const val ID_APP_MANAGER = 13009
const val ID_APP_PROCESS = 13011
const val RECOVERY_PHOTOS = "Recovery Photos"
const val RECOVERY_VIDEOS = "Recovery Videos"
......@@ -24,7 +24,7 @@ object ConstObject {
const val PRIVACY_SPACE = "Privacy Space"
const val WHATSAPP_CLEANER = "Whatsapp Cleaner"
const val LARGE_FILE = "Large File"
const val APP_MANAGER = "App Manager"
const val APP_PROCESS = "App Process"
const val SCAN_PHOTOS = 1
const val SCAN_DOCUMENTS = 2
......
......@@ -16,23 +16,29 @@ import com.base.datarecovery.MyApplication
import com.base.datarecovery.R
import com.base.datarecovery.activity.SplashActivity
import com.base.datarecovery.ads.AdDisplayUtils
import com.base.datarecovery.bean.ConstObject.ID_APP_PROCESS
import com.base.datarecovery.bean.ConstObject.ID_JUNK_CLEAN_PUSH
import com.base.datarecovery.bean.ConstObject.ID_LARGE_FILE
import com.base.datarecovery.bean.ConstObject.ID_PRIVACY_SPACE
import com.base.datarecovery.bean.ConstObject.ID_RECOVERY_DOCUMENTS
import com.base.datarecovery.bean.ConstObject.ID_RECOVERY_PHOTOS
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_SIMILAR_IMAGE
import com.base.datarecovery.bean.ConstObject.ID_WHATSAPP_CLEANER
import com.base.datarecovery.utils.AppProcessStringManager
import com.base.datarecovery.utils.AppPreferences
import com.base.datarecovery.utils.CleanJunkStringResourceManager
import com.base.datarecovery.utils.DocumentRecoveryStringManager
import com.base.datarecovery.utils.DuplicatePhotoStringResourceManager
import com.base.datarecovery.utils.EventUtils
import com.base.datarecovery.utils.LargeFileStringManager
import com.base.datarecovery.utils.LogEx
import com.base.datarecovery.utils.PhotoRecoveryStringManager
import com.base.datarecovery.utils.PrivacySpaceStringManager
import com.base.datarecovery.utils.ScreenshotCleanupStringManager
import com.base.datarecovery.utils.VideoRecoveryStringManager
import com.base.datarecovery.utils.WhatsappStringManager
import java.util.Random
/**
......@@ -93,6 +99,24 @@ object NotificationUtil {
desc = PrivacySpaceStringManager.getNextPrivacySpaceCopy()
btn = "Hide"
}
ID_WHATSAPP_CLEANER -> {
icon = R.mipmap.whatsapp
desc = WhatsappStringManager.getNextPrivacySpaceCopy()
btn = "Clean Up"
}
ID_LARGE_FILE -> {
icon = R.mipmap.large
desc = LargeFileStringManager.getNextPrivacySpaceCopy()
btn = "Clean Up"
}
ID_APP_PROCESS -> {
icon = R.mipmap.app
desc = AppProcessStringManager.getNextPrivacySpaceCopy()
btn = "Setting"
}
}
bigRemoteViews.setImageViewResource(R.id.iv_icon, icon)
bigRemoteViews.setTextViewText(R.id.tv_desc, desc)
......@@ -213,7 +237,7 @@ object NotificationUtil {
AppPreferences.getInstance().put(key, s)
}
fun sendNotification(context: Context,where:String="") {
fun sendNotification(context: Context, where: String = "") {
val currentNum =
AppPreferences.getInstance().getInt("showNotificationCount_" + AdDisplayUtils.getInstance().getCurrentDate(), 0)
val maxNum = AppPreferences.getInstance().getString("maxShowNotificationCount", "156").toIntOrNull() ?: 156
......
......@@ -7,7 +7,7 @@ import android.content.Intent
import android.view.View
import android.view.animation.AccelerateDecelerateInterpolator
import com.base.datarecovery.activity.SettingActivity
import com.base.datarecovery.activity.appmanager.AppManagerAnimationActivity
import com.base.datarecovery.activity.appprocess.AppProcessAnimationActivity
import com.base.datarecovery.activity.junkclean.ScanJunkActivity
import com.base.datarecovery.activity.largefile.LargeFileAnimationActivity
import com.base.datarecovery.activity.photomanager.PhotoManagerAnimationActivity
......@@ -21,7 +21,6 @@ import com.base.datarecovery.bean.ConstObject.SCAN_VIDEOS
import com.base.datarecovery.bean.ConstObject.privacyPinPassword
import com.base.datarecovery.databinding.FragmentHomeBinding
import com.base.datarecovery.help.BaseFragment
import com.base.datarecovery.help.KotlinExt.toFormatSize
class HomeFragment : BaseFragment<FragmentHomeBinding>() {
......@@ -71,7 +70,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
startActivity(Intent(requireContext(), WhatsAppCleanerAnimationActivity::class.java))
}
binding.cardAppManager.setOnClickListener {
startActivity(Intent(requireContext(), AppManagerAnimationActivity::class.java))
startActivity(Intent(requireContext(), AppProcessAnimationActivity::class.java))
}
binding.cardLargeFile.setOnClickListener {
startActivity(Intent(requireContext(), LargeFileAnimationActivity::class.java))
......
package com.base.datarecovery.utils;
import java.util.ArrayList;
import java.util.List;
public class AppProcessStringManager {
private static final List<String> appManagerCopies = new ArrayList<>();
private static int currentCopyIndex = 0;
static {
// 初始化并添加文案到列表
appManagerCopies.add("Manage Your Apps: Keep your device running smoothly with our App Process Manager.");
appManagerCopies.add("App Process Alert: Time to clean up your device's background processes.");
appManagerCopies.add("Optimize Performance: Discover which apps are running in the background and manage them with ease.");
appManagerCopies.add("App Process Check: Ensure your device is running efficiently by managing your app processes.");
}
public static String getNextPrivacySpaceCopy() {
if (appManagerCopies.isEmpty()) {
return null; // 根据您的需要处理错误情况
}
String copy = appManagerCopies.get(currentCopyIndex);
currentCopyIndex = (currentCopyIndex + 1) % appManagerCopies.size();
return copy;
}
}
package com.base.datarecovery.utils;
import java.util.ArrayList;
import java.util.List;
public class LargeFileStringManager {
private static final List<String> largeFileCopies = new ArrayList<>();
private static int currentCopyIndex = 0;
static {
// 初始化并添加文案到列表
largeFileCopies.add("Need more space? We've found large files to clean.");
largeFileCopies.add("Optimize your storage. Large files detected.");
largeFileCopies.add("Streamline your device storage. Time to clear large files.");
largeFileCopies.add("Refresh your storage. Large files are ready to be cleared.");
largeFileCopies.add("Tidy up your device. Large files identified.");
}
public static String getNextPrivacySpaceCopy() {
if (largeFileCopies.isEmpty()) {
return null; // 根据您的需要处理错误情况
}
String copy = largeFileCopies.get(currentCopyIndex);
currentCopyIndex = (currentCopyIndex + 1) % largeFileCopies.size();
return copy;
}
}
package com.base.datarecovery.utils;
import java.util.ArrayList;
import java.util.List;
public class WhatsappStringManager {
private static final List<String> whatsappCopies = new ArrayList<>();
private static int currentCopyIndex = 0;
static {
// 初始化并添加文案到列表
whatsappCopies.add("Clean up your WhatsApp to free up some room. Tap here to start.");
whatsappCopies.add("Clean old files from your WhatsApp and keep things organized.");
whatsappCopies.add("Your WhatsApp storage could use some freshening up.");
whatsappCopies.add("Let us help you remove unnecessary files from WhatsApp.");
whatsappCopies.add("Archive old chats and clear out old media in WhatsApp with a few taps.");
}
public static String getNextPrivacySpaceCopy() {
if (whatsappCopies.isEmpty()) {
return null; // 根据您的需要处理错误情况
}
String copy = whatsappCopies.get(currentCopyIndex);
currentCopyIndex = (currentCopyIndex + 1) % whatsappCopies.size();
return copy;
}
}
......@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".activity.appmanager.AppManagerActivity">
tools:context=".activity.appprocess.AppProcessActivity">
<FrameLayout
android:layout_width="match_parent"
......
......@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".activity.appmanager.AppManagerAnimationActivity">
tools:context=".activity.appprocess.AppProcessAnimationActivity">
<com.base.datarecovery.view.XmlLottieAnimationView
......
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