Commit 5dd8c486 authored by wanglei's avatar wanglei

...

parent 230eb832
......@@ -5,20 +5,15 @@ import android.content.Intent
import android.graphics.Color
import androidx.activity.OnBackPressedCallback
import androidx.core.view.updatePadding
import com.base.filerecoveryrecyclebin.activity.appmanager.AppManagerAnimationActivity
import com.base.filerecoveryrecyclebin.activity.appprocess.AppProcessAnimationActivity
import com.base.filerecoveryrecyclebin.activity.battery.BatteryInfoAnimationActivity
import com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity
import com.base.filerecoveryrecyclebin.activity.largefile.LargeFileAnimationActivity
import com.base.filerecoveryrecyclebin.activity.recovery.FileScanResultActivity
import com.base.filerecoveryrecyclebin.activity.repeat.RepeatAnimationActivity
import com.base.filerecoveryrecyclebin.activity.screenshot.ScreenShotAnimationActivity
import com.base.filerecoveryrecyclebin.activity.whatsapp.WhatsAppCleanerAnimationActivity
import com.base.filerecoveryrecyclebin.adapter.AppFunctionAdapter
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.bean.ConstObject
import com.base.filerecoveryrecyclebin.bean.ConstObject.APP_MANAGER
import com.base.filerecoveryrecyclebin.bean.ConstObject.APP_PROCESS
import com.base.filerecoveryrecyclebin.bean.ConstObject.BATTERY_INFO
import com.base.filerecoveryrecyclebin.bean.ConstObject.JUNK_CLEANER
import com.base.filerecoveryrecyclebin.bean.ConstObject.LARGE_FILE
......@@ -32,7 +27,6 @@ import com.base.filerecoveryrecyclebin.bean.ConstObject.SCAN_DOCUMENTS
import com.base.filerecoveryrecyclebin.bean.ConstObject.SCAN_PHOTOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.SCAN_VIDEOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.SCREENSHOT_CLEANER
import com.base.filerecoveryrecyclebin.bean.ConstObject.WHATSAPP_CLEANER
import com.base.filerecoveryrecyclebin.databinding.LayoutResult2Binding
import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.KotlinExt.toFormatSize
......@@ -56,22 +50,13 @@ class ResultActivity : BaseActivity<LayoutResult2Binding>() {
JUNK_CLEANER -> {
startActivity(Intent(this, ScanJunkActivity::class.java))
}
APP_MANAGER -> {
startActivity(Intent(this, AppManagerAnimationActivity::class.java))
}
BATTERY_INFO -> {
startActivity(Intent(this, BatteryInfoAnimationActivity::class.java))
}
LARGE_FILE -> {
startActivity(Intent(this, LargeFileAnimationActivity::class.java))
}
WHATSAPP_CLEANER -> {
startActivity(Intent(this, WhatsAppCleanerAnimationActivity::class.java))
}
APP_PROCESS -> {
startActivity(Intent(this, AppProcessAnimationActivity::class.java))
}
REPEAT_PHOTOS -> {
startActivity(Intent(this, RepeatAnimationActivity::class.java))
}
......@@ -127,11 +112,6 @@ class ResultActivity : BaseActivity<LayoutResult2Binding>() {
AppPreferences.getInstance()
.put("last_use_junk_cleaner", System.currentTimeMillis())
}
WHATSAPP_CLEANER -> {
binding.tvInfo.text = "Complete."
}
RECYCLE_BIN -> {
binding.tvInfo.text = "Restore Success."
}
......
package com.base.filerecoveryrecyclebin.activity.guide
import com.base.filerecoveryrecyclebin.BuildConfig
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.databinding.FragmentNativeFullBinding
import com.base.filerecoveryrecyclebin.help.BaseFragment
class NativeFullFragment : BaseFragment<FragmentNativeFullBinding>() {
override val binding: FragmentNativeFullBinding by lazy {
FragmentNativeFullBinding.inflate(layoutInflater)
}
override fun setView() {
}
override fun onResume() {
super.onResume()
if (AdmobMaxHelper.showGuideNativeSp() || BuildConfig.DEBUG) {
AdmobMaxHelper.admobMaxShowNativeAd(requireActivity(), binding.flAd,3)
}
}
}
\ No newline at end of file
package com.base.filerecoveryrecyclebin.activity.guide
import android.content.Intent
import androidx.activity.addCallback
import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.databinding.ActivityWhichWantGuideBinding
import com.base.filerecoveryrecyclebin.help.BaseActivity
class WhichWantGuideActivity : BaseActivity<ActivityWhichWantGuideBinding>() {
override val binding: ActivityWhichWantGuideBinding by lazy {
ActivityWhichWantGuideBinding.inflate(layoutInflater)
}
override fun initView() {
changeNative()
binding.llPhoto.setOnClickListener {
binding.iv1.isSelected = !binding.iv1.isSelected
changeNative()
}
binding.llVideo.setOnClickListener {
binding.iv2.isSelected = !binding.iv2.isSelected
changeNative()
}
binding.llAudio.setOnClickListener {
binding.iv3.isSelected = !binding.iv3.isSelected
changeNative()
}
binding.llDocument.setOnClickListener {
binding.iv4.isSelected = !binding.iv4.isSelected
changeNative()
}
onBackPressedDispatcher.addCallback {
finishToMain()
}
binding.llContinue.setOnClickListener {
startActivity(Intent(this@WhichWantGuideActivity, GuideActivity::class.java))
finish()
}
}
private fun changeNative() {
AdmobMaxHelper.admobMaxShowNativeAd(this, binding.flAd, R.layout.layout_native_custom)
}
}
\ No newline at end of file
......@@ -15,7 +15,6 @@ import com.base.filerecoveryrecyclebin.databinding.ActivitySplashBinding
import com.base.filerecoveryrecyclebin.fcm.CloseNotificationReceiver
import com.base.filerecoveryrecyclebin.fcm.NotificationUtil
import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.service.StayNotificationService.Companion.startStayNotification
import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.utils.EventUtils
......@@ -87,10 +86,10 @@ class Splash2Activity : BaseActivity<ActivitySplashBinding>(),
loadAd()
}
private var isMaxComplete=false
private var isMaxComplete = false
override fun onProgressMax() {
if(isMaxComplete)return
isMaxComplete=true
if (isMaxComplete) return
isMaxComplete = true
Handler().postDelayed({
StartUtils.jumpNextPage(this)
}, 500)
......@@ -137,5 +136,9 @@ private var isMaxComplete=false
isPause = true
}
companion object {
var isSplashHot: Boolean = false
var progressCallBack: (() -> Unit)? = null
}
}
\ No newline at end of file
......@@ -10,8 +10,6 @@ import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.bean.ConstObject.APP_MANAGER
import com.base.filerecoveryrecyclebin.bean.ConstObject.APP_PROCESS
import com.base.filerecoveryrecyclebin.bean.ConstObject.BATTERY_INFO
import com.base.filerecoveryrecyclebin.bean.ConstObject.JUNK_CLEANER
import com.base.filerecoveryrecyclebin.bean.ConstObject.LARGE_FILE
......@@ -21,22 +19,18 @@ import com.base.filerecoveryrecyclebin.bean.ConstObject.RECOVERY_PHOTOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.RECOVERY_VIDEOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.REPEAT_PHOTOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.SCREENSHOT_CLEANER
import com.base.filerecoveryrecyclebin.bean.ConstObject.WHATSAPP_CLEANER
import com.base.filerecoveryrecyclebin.databinding.ItemLayoutReslut2Binding
import com.base.filerecoveryrecyclebin.utils.AppPreferences
import com.base.filerecoveryrecyclebin.view.XmlEx.inflate
import java.util.Collections
class AppFunctionAdapter(val activity:Activity,val click: (name: String) -> Unit) :
class AppFunctionAdapter(val activity: Activity, val click: (name: String) -> Unit) :
RecyclerView.Adapter<AppFunctionAdapter.JJJ>() {
val list = arrayListOf(
Fun(JUNK_CLEANER, R.mipmap.r_laji, "Clean up the junk files for your phone", "Clean Up Now"),
Fun(APP_MANAGER, R.mipmap.r_appjincheng, "Detect junk files ,cache,temp files.", "Try It Now"),
Fun(BATTERY_INFO, R.mipmap.r_dianchi, "View battery usage and details", "Try It Now"),
Fun(LARGE_FILE, R.mipmap.r_dawenjian, "Clean large fles to free up storage space", "Try It Now"),
Fun(WHATSAPP_CLEANER, R.mipmap.r_what, "Free up space by cleaning up WhatsApp junk files", "Try It Now"),
Fun(APP_PROCESS, R.mipmap.r_guanli, "Manage backend processes", "Try It Now"),
Fun(LARGE_FILE, R.mipmap.r_dawenjian, "Clean large files to free up storage space", "Try It Now"),
Fun(REPEAT_PHOTOS, R.mipmap.r_xiangsi, "Check similar photos to release more space", "Try It Now"),
Fun(SCREENSHOT_CLEANER, R.mipmap.r_jietu, "Check the screenshots to free up more space", "Try It Now"),
Fun(RECOVERY_PHOTOS, R.mipmap.r_pic, "Recovery lost photos", "Try It Now"),
......@@ -60,17 +54,17 @@ class AppFunctionAdapter(val activity:Activity,val click: (name: String) -> Unit
val data = list[position]
val context = holder.itemView.context
val binding = ItemLayoutReslut2Binding.bind(holder.itemView)
if(position==0){
if (position == 0) {
binding.idFlNative.isVisible = true
AdmobMaxHelper.admobMaxShowNativeAd(activity,binding.idFlNative)
}else {
AdmobMaxHelper.admobMaxShowNativeAd(activity, binding.idFlNative)
} else {
binding.idFlNative.isVisible = false
}
binding.ivIcon.setImageDrawable(ContextCompat.getDrawable(context, data.icon))
binding.tvTittle.text = data.name
binding.idDesc.text=data.des
binding.idBtn.text=data.button
binding.idDesc.text = data.des
binding.idBtn.text = data.button
// binding.tvDes.text = data.des
// binding.tvButton.text = data.button
binding.root.setOnClickListener {
......
......@@ -11,6 +11,7 @@ import com.applovin.mediation.nativeAds.MaxNativeAdLoader
import com.applovin.mediation.nativeAds.MaxNativeAdView
import com.applovin.mediation.nativeAds.MaxNativeAdViewBinder
import com.base.filerecoveryrecyclebin.BuildConfig
import com.base.filerecoveryrecyclebin.GlobalConfig
import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.ads.AdDisplayUtils
import com.base.filerecoveryrecyclebin.help.BaseApplication
......@@ -22,7 +23,7 @@ import org.json.JSONObject
object AdMaxNativeUtils {
private val TAG = "AdMaxNativeUtils"
private var nativeAdLoader: MaxNativeAdLoader = MaxNativeAdLoader(ConfigHelper.nativeAdMaxId, BaseApplication.context)
private var nativeAdLoader: MaxNativeAdLoader = MaxNativeAdLoader(GlobalConfig.ID_MAX_NATIVE, BaseApplication.context)
private var nativeAd: MaxAd? = null
private var nativeLoadTime = Long.MAX_VALUE
private var haveSetAdListener: Boolean = false
......
......@@ -14,6 +14,7 @@ import com.applovin.mediation.MaxAd
import com.applovin.mediation.MaxAdListener
import com.applovin.mediation.MaxError
import com.applovin.mediation.ads.MaxAppOpenAd
import com.base.filerecoveryrecyclebin.GlobalConfig
import com.base.filerecoveryrecyclebin.MyApplication.Companion.isInterOpenShowing
import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.activity.splash.Splash2Activity
......@@ -35,7 +36,7 @@ object AdMaxOpenUtils {
private fun setListener(activity: Activity) {
activityString = activity::class.java.toString().split(".").last()
if (appOpenAd == null) {
appOpenAd = MaxAppOpenAd(ConfigHelper.openAdMaxId, activity)
appOpenAd = MaxAppOpenAd(GlobalConfig.ID_MAX_OPEN, activity)
appOpenAd?.setListener(object : MaxAdListener {
override fun onAdLoaded(p0: MaxAd) {
......
......@@ -17,8 +17,6 @@ import androidx.core.graphics.drawable.IconCompat
import com.base.filerecoveryrecyclebin.MyApplication
import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.activity.splash.Splash2Activity
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_APP_MANAGER
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_APP_PROCESS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_BATTERY_INFO
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_JUNK_CLEAN_PUSH
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_DOCUMENTS
......@@ -31,9 +29,7 @@ import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_WHEATHER
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_XINGZUO
import com.base.filerecoveryrecyclebin.bean.WeatherBean
import com.base.filerecoveryrecyclebin.help.WeatherUtils
import com.base.filerecoveryrecyclebin.utils.AppManagerStringManager
import com.base.filerecoveryrecyclebin.utils.AppPreferences
import com.base.filerecoveryrecyclebin.utils.AppProcessStringManager
import com.base.filerecoveryrecyclebin.utils.BatteryInfoStringManager
import com.base.filerecoveryrecyclebin.utils.CleanJunkStringResourceManager
import com.base.filerecoveryrecyclebin.utils.DocumentRecoveryStringManager
......@@ -160,32 +156,6 @@ object NotificationUtil {
sendCustomNotification(context, actionId, intent, bigRemoteViews, smallRemoteViews)
}
ID_APP_PROCESS -> {
val icon = R.mipmap.h_process
val desc = AppProcessStringManager.getNextDesc()
val btn = "WhatsApp Cleaner"
bigRemoteViews.setImageViewResource(R.id.iv_icon, icon)
bigRemoteViews.setTextViewText(R.id.tv_desc, desc)
bigRemoteViews.setTextViewText(R.id.tv_btn, btn)
smallRemoteViews.setImageViewResource(R.id.iv_icon, icon)
smallRemoteViews.setTextViewText(R.id.tv_desc, desc)
smallRemoteViews.setTextViewText(R.id.tv_btn, btn)
sendCustomNotification(context, actionId, intent, bigRemoteViews, smallRemoteViews)
}
ID_APP_MANAGER -> {
val icon = R.mipmap.c_appmanager
val desc = AppManagerStringManager.getNextDesc()
val btn = "App Manager"
bigRemoteViews.setImageViewResource(R.id.iv_icon, icon)
bigRemoteViews.setTextViewText(R.id.tv_desc, desc)
bigRemoteViews.setTextViewText(R.id.tv_btn, btn)
smallRemoteViews.setImageViewResource(R.id.iv_icon, icon)
smallRemoteViews.setTextViewText(R.id.tv_desc, desc)
smallRemoteViews.setTextViewText(R.id.tv_btn, btn)
sendCustomNotification(context, actionId, intent, bigRemoteViews, smallRemoteViews)
}
ID_BATTERY_INFO -> {
val icon = R.mipmap.c_battery
val desc = BatteryInfoStringManager.getNextDesc()
......@@ -505,8 +475,6 @@ object NotificationUtil {
ID_RECOVERY_VIDEOS,
ID_RECOVERY_DOCUMENTS,
ID_WHATSAPP,
ID_APP_PROCESS,
ID_APP_MANAGER,
ID_BATTERY_INFO,
ID_WHEATHER,
ID_XINGZUO
......
......@@ -19,15 +19,11 @@ import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.activity.MainActivity
import com.base.filerecoveryrecyclebin.activity.SettingActivity
import com.base.filerecoveryrecyclebin.activity.XzLoadingActivity
import com.base.filerecoveryrecyclebin.activity.appmanager.AppManagerAnimationActivity
import com.base.filerecoveryrecyclebin.activity.appprocess.AppProcessAnimationActivity
import com.base.filerecoveryrecyclebin.activity.battery.BatteryInfoAnimationActivity
import com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunk2Activity
import com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity
import com.base.filerecoveryrecyclebin.activity.largefile.LargeFileAnimationActivity
import com.base.filerecoveryrecyclebin.activity.repeat.RepeatAnimationActivity
import com.base.filerecoveryrecyclebin.activity.screenshot.ScreenShotAnimationActivity
import com.base.filerecoveryrecyclebin.activity.whatsapp.WhatsAppCleanerAnimationActivity
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.bean.ConstObject
import com.base.filerecoveryrecyclebin.databinding.FragmentHome3Binding
......@@ -81,13 +77,6 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>() {
binding.lottie.repeatCount = ValueAnimator.INFINITE
lifecycleScope.launch {
(requireActivity() as MainActivity).photoSizeFlow.collectLatest { pair ->
if (pair.first != 0L) {
binding.tvScreenshotSize.visibility = View.VISIBLE
binding.tvScreenshotSize.text = pair.first.toFormatSize()
} else {
binding.tvScreenshotSize.visibility = View.GONE
}
if (pair.second != 0L) {
binding.tvDuplicateSize.visibility = View.VISIBLE
binding.tvDuplicateSize.text = pair.second.toFormatSize()
......@@ -115,9 +104,6 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>() {
} else {
startActivity(Intent(requireContext(), ScanJunkActivity::class.java))
}
// sendNotification(requireContext(), ConstObject.ID_JUNK_CLEAN_PUSH)
// AppLovinSdk.getInstance( requireContext() ).showMediationDebugger()
}
binding.idTvXz.setOnClickListener {
startActivity(Intent(context, XzLoadingActivity::class.java))
......@@ -125,21 +111,9 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>() {
binding.cardJunkClean.setOnClickListener {
startActivity(Intent(requireContext(), ScanJunkActivity::class.java))
}
binding.cardWhatsapp.setOnClickListener {
startActivity(Intent(requireContext(), WhatsAppCleanerAnimationActivity::class.java))
}
binding.cardAppManager.setOnClickListener {
startActivity(Intent(requireContext(), AppManagerAnimationActivity::class.java))
}
binding.cardAppProcess.setOnClickListener {
startActivity(Intent(requireContext(), AppProcessAnimationActivity::class.java))
}
binding.cardLargeFile.setOnClickListener {
startActivity(Intent(requireContext(), LargeFileAnimationActivity::class.java))
}
binding.cardScreenshot.setOnClickListener {
startActivity(Intent(requireContext(), ScreenShotAnimationActivity::class.java))
}
binding.cardDuplicate.setOnClickListener {
startActivity(Intent(requireContext(), RepeatAnimationActivity::class.java))
}
......
......@@ -47,7 +47,7 @@ class RecycleBinFragment : BaseFragment<FragmentRecycleBinBinding>() {
})
}
binding.rv.adapter = recycleBinAdapter
AdmobMaxHelper.admobMaxShowNativeAd(requireActivity(),binding.idFlNative,1)
AdmobMaxHelper.admobMaxShowNativeAd(requireActivity(), binding.idFlNative)
}
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FBFBFB" />
<corners android:radius="20dp" />
</shape>
\ No newline at end of file
......@@ -7,15 +7,65 @@
android:gravity="center_horizontal"
android:orientation="vertical">
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<LinearLayout
android:id="@+id/llConsent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="33dp"
android:layout_marginTop="300dp"
android:background="@drawable/bg_fbfbfb_20"
android:orientation="vertical"
android:padding="18dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@mipmap/essentiona"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="Consent Required"
android:textColor="#000000"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:maxHeight="150dp"
android:text="@string/consent"
android:textColor="#A8A8A8"
android:textSize="13sp" />
</ScrollView>
</LinearLayout>
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="2" />
android:layout_height="wrap_content"
android:layout_weight="1" />
<LinearLayout
android:id="@+id/ll_progress"
......
This diff is collapsed.
......@@ -41,10 +41,17 @@
</FrameLayout>
</FrameLayout>
<FrameLayout
android:id="@+id/id_fl_native"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent"
......@@ -58,9 +65,6 @@
tools:listitem="@layout/item_media_file" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_empty"
android:layout_width="wrap_content"
......@@ -86,4 +90,10 @@
tools:ignore="HardcodedText" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</FrameLayout>
\ No newline at end of file
<resources>
<string name="app_name">Cleaner Junk &amp; Photo Recovery</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
<string name="facebook_app_id">7796777470443584</string>
<!-- Strings used for fragments for navigation -->
<string name="first_fragment_label">First Fragment</string>
<string name="second_fragment_label">Second Fragment</string>
<string name="next">Next</string>
<string name="previous">Previous</string>
<string name="consent">
During the use of this APP, we need to obtain the following information:Mobile phone model, mobile phone manufacturer,Android system version,Application version number, application version name,Package name,Google Ad ID,Mobile phone local time zone,Mobile phone photo album, empty folders, apk files, temp files, log files,Battery power, mobile phone standby time, battery temperature, battery voltage, battery technology, battery capacity, battery current, current average value of the battery
Please rest assured that we will handle your information in strict accordance with relevant laws and regulations. All the information we collect will be used reasonably to ensure the normal operation and service improvement of the APP, and we will take all necessary measures to protect the security of your personal information. Your privacy is of utmost importance to us.
</string>
</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