Commit a1701937 authored by wanghai's avatar wanghai

广告合规修改

parent 23411b6c
...@@ -18,16 +18,12 @@ import android.util.Log ...@@ -18,16 +18,12 @@ import android.util.Log
import android.widget.RemoteViews import android.widget.RemoteViews
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.work.Configuration import androidx.work.Configuration
import com.swiftcleaner.chovey.GlobalConfig
import com.swiftcleaner.chovey.GlobalConfig.ID_BATTERY_INFO import com.swiftcleaner.chovey.GlobalConfig.ID_BATTERY_INFO
import com.swiftcleaner.chovey.GlobalConfig.ID_CLEAN_JUNK import com.swiftcleaner.chovey.GlobalConfig.ID_CLEAN_JUNK
import com.swiftcleaner.chovey.GlobalConfig.ID_LARGE_FILE_CLEANER import com.swiftcleaner.chovey.GlobalConfig.ID_LARGE_FILE_CLEANER
import com.swiftcleaner.chovey.GlobalConfig.ID_SCREENSHOT_CLEAN import com.swiftcleaner.chovey.GlobalConfig.ID_SCREENSHOT_CLEAN
import com.swiftcleaner.chovey.GlobalConfig.KEY_NOTIFICATION_ID
import com.swiftcleaner.chovey.R import com.swiftcleaner.chovey.R
import com.swiftcleaner.chovey.view.activity.CleanJunkActivity
import com.swiftcleaner.chovey.view.activity.InfoActivity
import com.swiftcleaner.chovey.view.activity.LargeFileActivity
import com.swiftcleaner.chovey.view.activity.ScreenShotActivity
import com.swiftcleaner.chovey.view.activity.StartActivity import com.swiftcleaner.chovey.view.activity.StartActivity
import kotlin.random.Random import kotlin.random.Random
...@@ -108,19 +104,20 @@ class NotificationJobService : JobService() { ...@@ -108,19 +104,20 @@ class NotificationJobService : JobService() {
.setCustomBigContentView(notificationLayoutExpanded) .setCustomBigContentView(notificationLayoutExpanded)
.setCategory(NotificationCompat.CATEGORY_CALL) .setCategory(NotificationCompat.CATEGORY_CALL)
val cleanPendingIntent = createPendingIntent(context, ID_CLEAN_JUNK, CleanJunkActivity::class.java)
val cleanPendingIntent = startPending(context, ID_CLEAN_JUNK)
notificationLayout.setOnClickPendingIntent(R.id.id_ll_clean, cleanPendingIntent) notificationLayout.setOnClickPendingIntent(R.id.id_ll_clean, cleanPendingIntent)
notificationLayoutExpanded.setOnClickPendingIntent(R.id.id_ll_clean, cleanPendingIntent) notificationLayoutExpanded.setOnClickPendingIntent(R.id.id_ll_clean, cleanPendingIntent)
val largeFilePendingIntent = createPendingIntent(context, ID_LARGE_FILE_CLEANER, LargeFileActivity::class.java) val largeFilePendingIntent = startPending(context, ID_LARGE_FILE_CLEANER)
notificationLayout.setOnClickPendingIntent(R.id.id_large_file, largeFilePendingIntent) notificationLayout.setOnClickPendingIntent(R.id.id_large_file, largeFilePendingIntent)
notificationLayoutExpanded.setOnClickPendingIntent(R.id.id_large_file, largeFilePendingIntent) notificationLayoutExpanded.setOnClickPendingIntent(R.id.id_large_file, largeFilePendingIntent)
val batteryPendingIntent = createPendingIntent(context, ID_BATTERY_INFO, InfoActivity::class.java) val batteryPendingIntent = startPending(context, ID_BATTERY_INFO)
notificationLayout.setOnClickPendingIntent(R.id.id_battery, batteryPendingIntent) notificationLayout.setOnClickPendingIntent(R.id.id_battery, batteryPendingIntent)
notificationLayoutExpanded.setOnClickPendingIntent(R.id.id_battery, batteryPendingIntent) notificationLayoutExpanded.setOnClickPendingIntent(R.id.id_battery, batteryPendingIntent)
val appPendingIntent = createPendingIntent(context, ID_SCREENSHOT_CLEAN, ScreenShotActivity::class.java) val appPendingIntent = startPending(context, ID_SCREENSHOT_CLEAN)
notificationLayout.setOnClickPendingIntent(R.id.id_app_manager, appPendingIntent) notificationLayout.setOnClickPendingIntent(R.id.id_app_manager, appPendingIntent)
notificationLayoutExpanded.setOnClickPendingIntent(R.id.id_app_manager, appPendingIntent) notificationLayoutExpanded.setOnClickPendingIntent(R.id.id_app_manager, appPendingIntent)
...@@ -137,8 +134,13 @@ class NotificationJobService : JobService() { ...@@ -137,8 +134,13 @@ class NotificationJobService : JobService() {
return builder.build() return builder.build()
} }
private fun startPending(context: Context, id: Int): PendingIntent{
return createPendingIntent(context, id, StartActivity::class.java)
}
private fun createPendingIntent(context: Context, id: Int, clz: Class<*>): PendingIntent { private fun createPendingIntent(context: Context, id: Int, clz: Class<*>): PendingIntent {
val intent = Intent(context, clz) val intent = Intent(context, clz)
intent.putExtra(GlobalConfig.KEY_NOTIFICATION_ID, id)
return PendingIntent.getActivity(context, Random.Default.nextInt(5000), intent, PendingIntent.FLAG_IMMUTABLE) return PendingIntent.getActivity(context, Random.Default.nextInt(5000), intent, PendingIntent.FLAG_IMMUTABLE)
} }
......
...@@ -369,6 +369,8 @@ public class MainActivity extends AppCompatActivity { ...@@ -369,6 +369,8 @@ public class MainActivity extends AppCompatActivity {
} }
private void requestFilesAccessPermission() { private void requestFilesAccessPermission() {
if (customBottomSheetDialog != null) customBottomSheetDialog.dismiss();
if (fullscreenDialog != null) fullscreenDialog.dismiss();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
try { try {
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION); Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
......
...@@ -557,8 +557,8 @@ public class CleanJunkActivity extends BaseActivity<ActivityCleanJunkBinding> { ...@@ -557,8 +557,8 @@ public class CleanJunkActivity extends BaseActivity<ActivityCleanJunkBinding> {
private void initAnimation(String str) { private void initAnimation(String str) {
Intent intent = new Intent(this, AnimatorActivity.class); Intent intent = new Intent(this, AnimatorActivity.class);
intent.putExtra("cleanstr", "Cleaned " + str + " junk files"); intent.putExtra("cleanstr", "Cleaned " + str + " useless files");
intent.putExtra("title", "Clean Junk"); intent.putExtra("title", "Clean Up");
intent.putExtra("animator",5); intent.putExtra("animator",5);
startActivity(intent); startActivity(intent);
finish(); finish();
...@@ -579,7 +579,7 @@ public class CleanJunkActivity extends BaseActivity<ActivityCleanJunkBinding> { ...@@ -579,7 +579,7 @@ public class CleanJunkActivity extends BaseActivity<ActivityCleanJunkBinding> {
private void initCustDialog() { private void initCustDialog() {
Activity activity = this; Activity activity = this;
CustomScoreDialog customScoreDialog = new CustomScoreDialog(this); CustomScoreDialog customScoreDialog = new CustomScoreDialog(this, 1);
customScoreDialog.setOnDialogClickListener(new CustomScoreDialog.OnDialogClickListener() { customScoreDialog.setOnDialogClickListener(new CustomScoreDialog.OnDialogClickListener() {
@Override @Override
public void onCancel() { public void onCancel() {
......
...@@ -13,7 +13,6 @@ import com.swiftcleaner.chovey.view.BaseActivity; ...@@ -13,7 +13,6 @@ import com.swiftcleaner.chovey.view.BaseActivity;
import com.swiftcleaner.chovey.view.dialog.CustomScoreDialog; import com.swiftcleaner.chovey.view.dialog.CustomScoreDialog;
public class EndCleanJunkActivity extends BaseActivity<ActivityEndCleanJunkBinding> { public class EndCleanJunkActivity extends BaseActivity<ActivityEndCleanJunkBinding> {
private CustomScoreDialog customScoreDialog;
@Override @Override
protected ActivityEndCleanJunkBinding getViewBinding() { protected ActivityEndCleanJunkBinding getViewBinding() {
return ActivityEndCleanJunkBinding.inflate(getLayoutInflater()); return ActivityEndCleanJunkBinding.inflate(getLayoutInflater());
...@@ -92,49 +91,33 @@ public class EndCleanJunkActivity extends BaseActivity<ActivityEndCleanJunkBindi ...@@ -92,49 +91,33 @@ public class EndCleanJunkActivity extends BaseActivity<ActivityEndCleanJunkBindi
} }
private void initCustDialog(){ private void initCustDialog(){
customScoreDialog = new CustomScoreDialog(this); AdmobHelps.INSTANCE.showInterstitialAd(
customScoreDialog.setOnDialogClickListener(new CustomScoreDialog.OnDialogClickListener() { EndCleanJunkActivity.this,
@Override () -> {
public void onCancel() { FinishMain.INSTANCE.finishToMain(EndCleanJunkActivity.this);
customScoreDialog.dismiss(); // 当广告被关闭时的逻辑
} Log.d("AdmobHelps", "Interstitial Ad was dismissed.");
return null;
@Override },
public void onSubmit() { () -> {
AdmobHelps.INSTANCE.showInterstitialAd( // 当广告展示完成时的逻辑
EndCleanJunkActivity.this, Log.d("AdmobHelps", "Interstitial Ad was shown.");
() -> { return null;
FinishMain.INSTANCE.finishToMain(EndCleanJunkActivity.this); },
// 当广告被关闭时的逻辑 () -> {
Log.d("AdmobHelps", "Interstitial Ad was dismissed."); FinishMain.INSTANCE.finishToMain(EndCleanJunkActivity.this);
return null; // 当广告加载失败时的逻辑
}, Log.d("AdmobHelps", "Interstitial Ad failed to load.");
() -> { return null;
// 当广告展示完成时的逻辑 },
Log.d("AdmobHelps", "Interstitial Ad was shown."); false,true, true
return null; );
},
() -> {
FinishMain.INSTANCE.finishToMain(EndCleanJunkActivity.this);
// 当广告加载失败时的逻辑
Log.d("AdmobHelps", "Interstitial Ad failed to load.");
return null;
},
false,true, true
);
}
});
customScoreDialog.show();
} }
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
if (customScoreDialog!=null&&customScoreDialog.isShowing()){
customScoreDialog.dismiss();
customScoreDialog=null;
}
} }
} }
\ No newline at end of file
...@@ -164,7 +164,7 @@ public class InfoActivity extends BaseActivity<ActivityInfoBinding> { ...@@ -164,7 +164,7 @@ public class InfoActivity extends BaseActivity<ActivityInfoBinding> {
private void initCustDialog() { private void initCustDialog() {
Activity activity = this; Activity activity = this;
CustomScoreDialog customScoreDialog = new CustomScoreDialog(this); CustomScoreDialog customScoreDialog = new CustomScoreDialog(this, 2);
customScoreDialog.setOnDialogClickListener(new CustomScoreDialog.OnDialogClickListener() { customScoreDialog.setOnDialogClickListener(new CustomScoreDialog.OnDialogClickListener() {
@Override @Override
public void onCancel() { public void onCancel() {
......
...@@ -246,8 +246,8 @@ public class LargeFileActivity extends BaseActivity<ActivityLargeFileBinding> { ...@@ -246,8 +246,8 @@ public class LargeFileActivity extends BaseActivity<ActivityLargeFileBinding> {
private void initAnimation(String str) { private void initAnimation(String str) {
Intent intent = new Intent(this, AnimatorActivity.class); Intent intent = new Intent(this, AnimatorActivity.class);
intent.putExtra("cleanstr", "Cleaned " + str + " junk files"); intent.putExtra("cleanstr", "Cleaned " + str + " useless files");
intent.putExtra("title", "Clean Junk"); intent.putExtra("title", "Clean Up");
intent.putExtra("animator",5); intent.putExtra("animator",5);
startActivity(intent); startActivity(intent);
finish(); finish();
...@@ -269,7 +269,7 @@ public class LargeFileActivity extends BaseActivity<ActivityLargeFileBinding> { ...@@ -269,7 +269,7 @@ public class LargeFileActivity extends BaseActivity<ActivityLargeFileBinding> {
private void initCustDialog() { private void initCustDialog() {
Activity activity = this; Activity activity = this;
CustomScoreDialog customScoreDialog = new CustomScoreDialog(this); CustomScoreDialog customScoreDialog = new CustomScoreDialog(this, 3);
customScoreDialog.setOnDialogClickListener(new CustomScoreDialog.OnDialogClickListener() { customScoreDialog.setOnDialogClickListener(new CustomScoreDialog.OnDialogClickListener() {
@Override @Override
public void onCancel() { public void onCancel() {
......
...@@ -340,7 +340,7 @@ class MalwareCleanActivity : AppCompatActivity() { ...@@ -340,7 +340,7 @@ class MalwareCleanActivity : AppCompatActivity() {
private fun initCustomDialog() { private fun initCustomDialog() {
val activity: Activity = this val activity: Activity = this
val customScoreDialog = CustomScoreDialog(this) val customScoreDialog = CustomScoreDialog(this, 0)
customScoreDialog.setOnDialogClickListener(object : customScoreDialog.setOnDialogClickListener(object :
CustomScoreDialog.OnDialogClickListener { CustomScoreDialog.OnDialogClickListener {
override fun onCancel() { override fun onCancel() {
...@@ -348,31 +348,28 @@ class MalwareCleanActivity : AppCompatActivity() { ...@@ -348,31 +348,28 @@ class MalwareCleanActivity : AppCompatActivity() {
} }
override fun onSubmit() { override fun onSubmit() {
if (AdmobHelps.isShowAdBackInter()) { showInterstitialAd(
showInterstitialAd( this@MalwareCleanActivity,
this@MalwareCleanActivity, {
{ finishToMain(activity)
finishToMain(activity) // 当广告被关闭时的逻辑
// 当广告被关闭时的逻辑 Log.d("AdmobHelps", "Interstitial Ad was dismissed.")
Log.d("AdmobHelps", "Interstitial Ad was dismissed.") null
null },
}, {
{ // 当广告展示完成时的逻辑
// 当广告展示完成时的逻辑 Log.d("AdmobHelps", "Interstitial Ad was shown.")
Log.d("AdmobHelps", "Interstitial Ad was shown.") null
null },
}, {
{ finishToMain(activity)
finishToMain(activity) // 当广告加载失败时的逻辑
// 当广告加载失败时的逻辑 Log.d("AdmobHelps", "Interstitial Ad failed to load.")
Log.d("AdmobHelps", "Interstitial Ad failed to load.") null
null },
}, false, isShowInterAd = AdmobHelps.isShowAdBackInter()
false )
)
} else {
finishToMain(activity)
}
} }
}) })
customScoreDialog.show() customScoreDialog.show()
......
...@@ -239,8 +239,8 @@ public class ScreenShotActivity extends BaseActivity<ActivityScreenShotBinding> ...@@ -239,8 +239,8 @@ public class ScreenShotActivity extends BaseActivity<ActivityScreenShotBinding>
} }
private void initAnimation(String cleanSize) { private void initAnimation(String cleanSize) {
Intent intent = new Intent(this, AnimatorActivity.class); Intent intent = new Intent(this, AnimatorActivity.class);
intent.putExtra("cleanstr", "Cleaned " + cleanSize + " junk files"); intent.putExtra("cleanstr", "Cleaned " + cleanSize + " useless files");
intent.putExtra("title", "Clean Junk"); intent.putExtra("title", "Clean Up");
intent.putExtra("animator",5); intent.putExtra("animator",5);
startActivity(intent); startActivity(intent);
finish(); finish();
...@@ -285,7 +285,7 @@ public class ScreenShotActivity extends BaseActivity<ActivityScreenShotBinding> ...@@ -285,7 +285,7 @@ public class ScreenShotActivity extends BaseActivity<ActivityScreenShotBinding>
private void initCustDialog() { private void initCustDialog() {
Activity activity = this; Activity activity = this;
CustomScoreDialog customScoreDialog = new CustomScoreDialog(this); CustomScoreDialog customScoreDialog = new CustomScoreDialog(this, 4);
customScoreDialog.setOnDialogClickListener(new CustomScoreDialog.OnDialogClickListener() { customScoreDialog.setOnDialogClickListener(new CustomScoreDialog.OnDialogClickListener() {
@Override @Override
public void onCancel() { public void onCancel() {
......
package com.swiftcleaner.chovey.view.activity package com.swiftcleaner.chovey.view.activity
import android.Manifest import android.Manifest
import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.content.ActivityNotFoundException import android.content.ActivityNotFoundException
import android.content.Context import android.content.Context
...@@ -20,25 +21,28 @@ import androidx.core.app.ActivityCompat ...@@ -20,25 +21,28 @@ import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.swiftcleaner.chovey.business.newAdmob.AdmobHelps.isShowAdBackInter
import com.swiftcleaner.chovey.business.newAdmob.AdmobHelps.isShowAdInter
import com.swiftcleaner.chovey.business.newAdmob.AdmobHelps.showInterstitialAd
import com.swiftcleaner.chovey.business.newAdmob.AdmobHelps.showNativeAd
import com.gyf.immersionbar.ImmersionBar import com.gyf.immersionbar.ImmersionBar
import com.swiftcleaner.chovey.R import com.swiftcleaner.chovey.R
import com.swiftcleaner.chovey.business.EventUtils.event import com.swiftcleaner.chovey.business.EventUtils.event
import com.swiftcleaner.chovey.business.newAdmob.AdmobHelps import com.swiftcleaner.chovey.business.newAdmob.AdmobHelps
import com.swiftcleaner.chovey.business.newAdmob.AdmobHelps.isShowAdBackInter
import com.swiftcleaner.chovey.business.newAdmob.AdmobHelps.isShowAdInter
import com.swiftcleaner.chovey.business.newAdmob.AdmobHelps.showInterstitialAd
import com.swiftcleaner.chovey.business.newAdmob.AdmobHelps.showNativeAd
import com.swiftcleaner.chovey.databinding.ActivitySimilarPhotosBinding import com.swiftcleaner.chovey.databinding.ActivitySimilarPhotosBinding
import com.swiftcleaner.chovey.model.bean.ImageHelpers import com.swiftcleaner.chovey.model.bean.ImageHelpers
import com.swiftcleaner.chovey.model.bean.SimilarBean import com.swiftcleaner.chovey.model.bean.SimilarBean
import com.swiftcleaner.chovey.model.tool.FileHelps import com.swiftcleaner.chovey.model.tool.FileHelps
import com.swiftcleaner.chovey.model.tool.MediaHelps import com.swiftcleaner.chovey.model.tool.MediaHelps
import com.swiftcleaner.chovey.model.tool.ToastUtil
import com.swiftcleaner.chovey.model.util.FinishMain.finishToMain import com.swiftcleaner.chovey.model.util.FinishMain.finishToMain
import com.swiftcleaner.chovey.view.MainActivity import com.swiftcleaner.chovey.view.MainActivity
import com.swiftcleaner.chovey.view.adapter.SimilarPhotosAdapter import com.swiftcleaner.chovey.view.adapter.SimilarPhotosAdapter
import com.swiftcleaner.chovey.view.adapter.SimilarPhotosAdapter.OnItemClick
import com.swiftcleaner.chovey.view.dialog.CustomScoreDialog import com.swiftcleaner.chovey.view.dialog.CustomScoreDialog
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async import kotlinx.coroutines.async
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import java.text.DecimalFormat import java.text.DecimalFormat
...@@ -63,14 +67,18 @@ class SimilarPhotosActivity : AppCompatActivity() { ...@@ -63,14 +67,18 @@ class SimilarPhotosActivity : AppCompatActivity() {
} }
private fun initShow() { private fun initShow() {
similarPhotosAdapter = SimilarPhotosAdapter(this, ArrayList()) similarPhotosAdapter = SimilarPhotosAdapter(this, ArrayList()) {
updateDeleteButton()
}
binding.similarPhotosExrecy.adapter = similarPhotosAdapter binding.similarPhotosExrecy.adapter = similarPhotosAdapter
binding.similarPhotosExrecy.layoutManager = LinearLayoutManager(this) binding.similarPhotosExrecy.layoutManager = LinearLayoutManager(this)
initData() initData()
binding.ivReturn.setOnClickListener { v: View? -> initCustDialog() } binding.ivReturn.setOnClickListener { v: View? -> initCustDialog() }
binding.similarPhotosDeleteButton.setOnClickListener { v: View? -> binding.similarPhotosDeleteButton.setOnClickListener { v: View? ->
val selectedItems = similarPhotosAdapter.selectedItems val selectedItems = similarPhotosAdapter.selectedItems
cleanFiles(selectedItems) if (selectedItems.size == 0) {
ToastUtil.showLongToast(this, "Please check the file to be deleted")
} else cleanFiles(selectedItems)
Log.d("selectedItems", "selectedItems=" + selectedItems.size) Log.d("selectedItems", "selectedItems=" + selectedItems.size)
} }
binding.switchId.setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener { compoundButton, isChecked -> binding.switchId.setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener { compoundButton, isChecked ->
...@@ -80,8 +88,9 @@ class SimilarPhotosActivity : AppCompatActivity() { ...@@ -80,8 +88,9 @@ class SimilarPhotosActivity : AppCompatActivity() {
} }
//全选 //全选
@SuppressLint("NotifyDataSetChanged")
private fun toggleSelection(isChecked: Boolean) { private fun toggleSelection(isChecked: Boolean) {
Thread { lifecycleScope.launch(Dispatchers.IO){
for (group in imageGroups) { for (group in imageGroups) {
if (group.items.size > 1) { if (group.items.size > 1) {
for (i in 1 until group.items.size) { for (i in 1 until group.items.size) {
...@@ -90,9 +99,11 @@ class SimilarPhotosActivity : AppCompatActivity() { ...@@ -90,9 +99,11 @@ class SimilarPhotosActivity : AppCompatActivity() {
} }
} }
} }
// Notify the adapter on the main thread lifecycleScope.launch(Dispatchers.Main) {
runOnUiThread { similarPhotosAdapter.notifyDataSetChanged() } updateDeleteButton()
}.start() similarPhotosAdapter.notifyDataSetChanged()
}
}
} }
private fun initData() { private fun initData() {
...@@ -216,6 +227,25 @@ class SimilarPhotosActivity : AppCompatActivity() { ...@@ -216,6 +227,25 @@ class SimilarPhotosActivity : AppCompatActivity() {
} }
} }
private fun updateDeleteButton() {
val selectedItems = similarPhotosAdapter.selectedItems
if (selectedItems.isEmpty()) {
binding.similarPhotosDeleteButton.setBackground(
ContextCompat.getDrawable(
this,
R.drawable.shape_radio_80dp_hui_se
)
)
} else {
binding.similarPhotosDeleteButton.setBackground(
ContextCompat.getDrawable(
this,
R.drawable.shape_clean_up
)
)
}
}
private fun cleanFiles(selectedFiles: List<SimilarBean>) { private fun cleanFiles(selectedFiles: List<SimilarBean>) {
// 更新媒体库 // 更新媒体库
Log.d("selectedFiles", "更新媒体库") Log.d("selectedFiles", "更新媒体库")
...@@ -225,8 +255,8 @@ class SimilarPhotosActivity : AppCompatActivity() { ...@@ -225,8 +255,8 @@ class SimilarPhotosActivity : AppCompatActivity() {
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
MediaHelps.updateMedia(applicationContext, paths) MediaHelps.updateMedia(applicationContext, paths)
val intent: Intent = Intent(this@SimilarPhotosActivity, AnimatorActivity::class.java) val intent: Intent = Intent(this@SimilarPhotosActivity, AnimatorActivity::class.java)
intent.putExtra("cleanstr", "Cleaned"+formatFileSize(selectedFiles.sumOf { it.size })+"junk files") intent.putExtra("cleanstr", "Cleaned"+formatFileSize(selectedFiles.sumOf { it.size })+"useless files")
intent.putExtra("title", "Clean Junk") intent.putExtra("title", "Clean Up")
intent.putExtra("animator", 5) intent.putExtra("animator", 5)
startActivity(intent) startActivity(intent)
finish() finish()
...@@ -244,7 +274,7 @@ class SimilarPhotosActivity : AppCompatActivity() { ...@@ -244,7 +274,7 @@ class SimilarPhotosActivity : AppCompatActivity() {
private fun initCustDialog() { private fun initCustDialog() {
val activity: Activity = this val activity: Activity = this
val customScoreDialog = CustomScoreDialog(this) val customScoreDialog = CustomScoreDialog(this, 5)
customScoreDialog.setOnDialogClickListener(object : customScoreDialog.setOnDialogClickListener(object :
CustomScoreDialog.OnDialogClickListener { CustomScoreDialog.OnDialogClickListener {
override fun onCancel() { override fun onCancel() {
......
...@@ -405,6 +405,7 @@ public class StartActivity extends AppCompatActivity { ...@@ -405,6 +405,7 @@ public class StartActivity extends AppCompatActivity {
Intent intent = new Intent(this, AnimatorActivity.class); Intent intent = new Intent(this, AnimatorActivity.class);
intent.putExtra("animator", 1); intent.putExtra("animator", 1);
startActivity(intent); startActivity(intent);
finish();
return; return;
} }
...@@ -412,6 +413,7 @@ public class StartActivity extends AppCompatActivity { ...@@ -412,6 +413,7 @@ public class StartActivity extends AppCompatActivity {
Intent intent = new Intent(this, AnimatorActivity.class); Intent intent = new Intent(this, AnimatorActivity.class);
intent.putExtra("animator", 2); intent.putExtra("animator", 2);
startActivity(intent); startActivity(intent);
finish();
return; return;
} }
...@@ -419,6 +421,7 @@ public class StartActivity extends AppCompatActivity { ...@@ -419,6 +421,7 @@ public class StartActivity extends AppCompatActivity {
Intent intent = new Intent(this, AnimatorActivity.class); Intent intent = new Intent(this, AnimatorActivity.class);
intent.putExtra("animator", 3); intent.putExtra("animator", 3);
startActivity(intent); startActivity(intent);
finish();
return; return;
} }
if (Objects.equals(actionId, GlobalConfig.ID_SIMILAR_PHOTOS)) { if (Objects.equals(actionId, GlobalConfig.ID_SIMILAR_PHOTOS)) {
...@@ -430,6 +433,7 @@ public class StartActivity extends AppCompatActivity { ...@@ -430,6 +433,7 @@ public class StartActivity extends AppCompatActivity {
Intent intent = new Intent(this, AnimatorActivity.class); Intent intent = new Intent(this, AnimatorActivity.class);
intent.putExtra("animator", 4); intent.putExtra("animator", 4);
startActivity(intent); startActivity(intent);
finish();
return; return;
} }
if (Objects.equals(actionId, ID_WHEATHER)) { if (Objects.equals(actionId, ID_WHEATHER)) {
......
...@@ -28,9 +28,12 @@ public class SimilarPhotosAdapter extends RecyclerView.Adapter<SimilarPhotosAdap ...@@ -28,9 +28,12 @@ public class SimilarPhotosAdapter extends RecyclerView.Adapter<SimilarPhotosAdap
private final Context context; private final Context context;
private List<SimilarBean> list; private List<SimilarBean> list;
public SimilarPhotosAdapter(Context context, List<SimilarBean> list) { private OnItemClick onItemClick;
public SimilarPhotosAdapter(Context context, List<SimilarBean> list, OnItemClick onItemClick) {
this.context = context; this.context = context;
this.list = new ArrayList<>(list); // 创建一个新的列表,避免外部修改 this.list = new ArrayList<>(list); // 创建一个新的列表,避免外部修改
this.onItemClick = onItemClick;
} }
public synchronized void setData(List<SimilarBean> newList) { public synchronized void setData(List<SimilarBean> newList) {
...@@ -117,6 +120,7 @@ public class SimilarPhotosAdapter extends RecyclerView.Adapter<SimilarPhotosAdap ...@@ -117,6 +120,7 @@ public class SimilarPhotosAdapter extends RecyclerView.Adapter<SimilarPhotosAdap
} else { } else {
Log.e("SimilarPhotosAdapter", "Invalid position: " + position + ", list size: " + list.size()); Log.e("SimilarPhotosAdapter", "Invalid position: " + position + ", list size: " + list.size());
} }
if (onItemClick != null) onItemClick.OnClick();
} }
public static class ViewHolder extends RecyclerView.ViewHolder { public static class ViewHolder extends RecyclerView.ViewHolder {
...@@ -159,4 +163,8 @@ public class SimilarPhotosAdapter extends RecyclerView.Adapter<SimilarPhotosAdap ...@@ -159,4 +163,8 @@ public class SimilarPhotosAdapter extends RecyclerView.Adapter<SimilarPhotosAdap
return oldList.get(oldItemPosition).equals(newList.get(newItemPosition)); return oldList.get(oldItemPosition).equals(newList.get(newItemPosition));
} }
} }
public interface OnItemClick{
public void OnClick();
}
} }
...@@ -3,6 +3,7 @@ package com.swiftcleaner.chovey.view.dialog; ...@@ -3,6 +3,7 @@ package com.swiftcleaner.chovey.view.dialog;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.TextView;
import androidx.appcompat.widget.AppCompatButton; import androidx.appcompat.widget.AppCompatButton;
import androidx.cardview.widget.CardView; import androidx.cardview.widget.CardView;
...@@ -25,7 +26,7 @@ public class CustomScoreDialog extends Dialog { ...@@ -25,7 +26,7 @@ public class CustomScoreDialog extends Dialog {
void onSubmit(); void onSubmit();
} }
public CustomScoreDialog(Activity activity) { public CustomScoreDialog(Activity activity, int type) {
super(activity, R.style.TransparentDialogTheme); super(activity, R.style.TransparentDialogTheme);
this.weakActivity = new WeakReference<>(activity); this.weakActivity = new WeakReference<>(activity);
setContentView(R.layout.dialog_function_exit_item); setContentView(R.layout.dialog_function_exit_item);
...@@ -33,6 +34,8 @@ public class CustomScoreDialog extends Dialog { ...@@ -33,6 +34,8 @@ public class CustomScoreDialog extends Dialog {
AppCompatButton dialog_cancel = findViewById(R.id.dialog_cancel); AppCompatButton dialog_cancel = findViewById(R.id.dialog_cancel);
AppCompatButton dialog_ok = findViewById(R.id.dialog_ok); AppCompatButton dialog_ok = findViewById(R.id.dialog_ok);
CardView cardView = findViewById(R.id.cardview); CardView cardView = findViewById(R.id.cardview);
TextView tvExitTitle = findViewById(R.id.tv_exit_title);
TextView tvExitContent = findViewById(R.id.tv_exit_content);
cardView.setCardBackgroundColor(ContextCompat.getColor(getContext(), android.R.color.transparent)); cardView.setCardBackgroundColor(ContextCompat.getColor(getContext(), android.R.color.transparent));
FrameLayout nativeView = findViewById(R.id.fl_ad); FrameLayout nativeView = findViewById(R.id.fl_ad);
...@@ -53,7 +56,7 @@ public class CustomScoreDialog extends Dialog { ...@@ -53,7 +56,7 @@ public class CustomScoreDialog extends Dialog {
} }
dismiss(); dismiss();
}); });
setExitText(tvExitTitle, tvExitContent, type);
setCanceledOnTouchOutside(false); setCanceledOnTouchOutside(false);
} }
@Override @Override
...@@ -72,4 +75,41 @@ public class CustomScoreDialog extends Dialog { ...@@ -72,4 +75,41 @@ public class CustomScoreDialog extends Dialog {
public void setOnDialogClickListener(OnDialogClickListener listener) { public void setOnDialogClickListener(OnDialogClickListener listener) {
this.listener = listener; this.listener = listener;
} }
private void setExitText(TextView titleTextView, TextView contentTextView, int type){
int resTitleId = R.string.exit_title_0;
switch (type){
case 1: resTitleId = R.string.exit_title_1;
break;
case 2: resTitleId = R.string.exit_title_2;
break;
case 3: resTitleId = R.string.exit_title_3;
break;
case 4: resTitleId = R.string.exit_title_4;
break;
case 5: resTitleId = R.string.exit_title_5;
break;
case 6: resTitleId = R.string.exit_title_6;
break;
default: break;
}
titleTextView.setText(resTitleId);
int resContentId = R.string.exit_content_0;
switch (type){
case 1: resContentId = R.string.exit_content_1;
break;
case 2: resContentId = R.string.exit_content_2;
break;
case 3: resContentId = R.string.exit_content_3;
break;
case 4: resContentId = R.string.exit_content_4;
break;
case 5: resContentId = R.string.exit_content_5;
break;
case 6: resContentId = R.string.exit_content_6;
break;
default: break;
}
contentTextView.setText(resContentId);
}
} }
\ No newline at end of file
...@@ -56,7 +56,7 @@ class WeatherInterface : BaseActivityKotlin<ActivityWeatherInterfaceBinding>() { ...@@ -56,7 +56,7 @@ class WeatherInterface : BaseActivityKotlin<ActivityWeatherInterfaceBinding>() {
private fun initCustDialog() { private fun initCustDialog() {
val activity: Activity = this val activity: Activity = this
val customScoreDialog = CustomScoreDialog(this) val customScoreDialog = CustomScoreDialog(this, 0)
customScoreDialog.setOnDialogClickListener(object : customScoreDialog.setOnDialogClickListener(object :
CustomScoreDialog.OnDialogClickListener { CustomScoreDialog.OnDialogClickListener {
override fun onCancel() { override fun onCancel() {
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:text="Clean Junk" android:text="Clean Up"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="19sp" android:textSize="19sp"
android:textStyle="bold" android:textStyle="bold"
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:text="Clean Junk" android:text="Clean Up"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="19sp" android:textSize="19sp"
android:textStyle="bold" android:textStyle="bold"
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:gravity="center" android:gravity="center"
android:text="Cleaned 25 MB junk files" android:text="Cleaned 25 MB useless files"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textSize="15sp" android:textSize="15sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
...@@ -126,7 +126,7 @@ ...@@ -126,7 +126,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="13dp" android:layout_marginStart="13dp"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:text="Clean Junk" android:text="Clean Up"
android:textColor="#000000" android:textColor="#000000"
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintStart_toEndOf="@id/iv_cl_end_clean_junk_img" app:layout_constraintStart_toEndOf="@id/iv_cl_end_clean_junk_img"
...@@ -137,7 +137,7 @@ ...@@ -137,7 +137,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="13dp" android:layout_marginStart="13dp"
android:layout_marginBottom="4dp" android:layout_marginBottom="4dp"
android:text="Clean junk regularly to free up space" android:text="Clean useless files regularly to free up space"
android:textColor="#999999" android:textColor="#999999"
android:textSize="13sp" android:textSize="13sp"
app:layout_constraintBottom_toBottomOf="@id/iv_cl_end_clean_junk_img" app:layout_constraintBottom_toBottomOf="@id/iv_cl_end_clean_junk_img"
......
...@@ -249,7 +249,7 @@ ...@@ -249,7 +249,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:text="Clean Junk" android:text="Clean Up"
android:textColor="#000000" android:textColor="#000000"
android:textSize="15sp" android:textSize="15sp"
app:layout_constraintEnd_toEndOf="@id/cl3_clean_junk" app:layout_constraintEnd_toEndOf="@id/cl3_clean_junk"
...@@ -509,7 +509,13 @@ ...@@ -509,7 +509,13 @@
android:layout_height="60dp" android:layout_height="60dp"
android:visibility="gone" android:visibility="gone"
tools:visibility="visible"> tools:visibility="visible">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/zhanweitu2"
android:scaleType="centerCrop"
android:tag="zhanweitu"
tools:ignore="ContentDescription" />
<com.facebook.shimmer.ShimmerFrameLayout <com.facebook.shimmer.ShimmerFrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
...@@ -517,15 +523,10 @@ ...@@ -517,15 +523,10 @@
android:background="@color/white" android:background="@color/white"
app:shimmer_highlight_color="#66242424"> app:shimmer_highlight_color="#66242424">
</com.facebook.shimmer.ShimmerFrameLayout> </com.facebook.shimmer.ShimmerFrameLayout>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/zhanweitu2"
android:scaleType="centerCrop"
android:tag="zhanweitu"
tools:ignore="ContentDescription" />
</FrameLayout> </FrameLayout>
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
\ No newline at end of file
...@@ -134,8 +134,8 @@ ...@@ -134,8 +134,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="44dp" android:layout_height="44dp"
android:layout_marginHorizontal="16dp" android:layout_marginHorizontal="16dp"
android:layout_marginBottom="10dp" android:layout_marginBottom="15dp"
android:background="@drawable/shape_clean_up" android:background="@drawable/shape_radio_80dp_hui_se"
android:text="Delete" android:text="Delete"
android:textAllCaps="false" android:textAllCaps="false"
android:textColor="@color/white" android:textColor="@color/white"
...@@ -212,6 +212,7 @@ ...@@ -212,6 +212,7 @@
android:id="@+id/fl_ad" android:id="@+id/fl_ad"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="gone"
android:layout_marginHorizontal="16dp" android:layout_marginHorizontal="16dp"
app:layout_constraintBottom_toBottomOf="parent"> app:layout_constraintBottom_toBottomOf="parent">
......
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
android:id="@+id/ll_agreement" android:id="@+id/ll_agreement"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="47dp" android:layout_marginHorizontal="5dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:gravity="center" android:gravity="center"
android:orientation="horizontal" android:orientation="horizontal"
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/cardview" android:id="@+id/cardview"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -21,17 +22,19 @@ ...@@ -21,17 +22,19 @@
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<TextView <TextView
android:id="@+id/tv_exit_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="34dp" android:layout_marginTop="34dp"
android:gravity="center" android:gravity="center"
android:text="Clean Junk" tools:text="Title"
android:textColor="#000000" android:textColor="#000000"
android:textSize="20sp" android:textSize="18sp"
android:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
android:id="@+id/tv_exit_content"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="29dp" android:layout_marginHorizontal="29dp"
...@@ -39,14 +42,15 @@ ...@@ -39,14 +42,15 @@
android:ellipsize="end" android:ellipsize="end"
android:gravity="center" android:gravity="center"
android:maxLines="2" android:maxLines="2"
android:text="Exit Junk Cleaner? Unremoved junk files may be taking up space." tools:text="Exit Junk Cleaner? Unremoved useless files may be taking up space."
android:textColor="#666666" android:textColor="#666666"
android:textSize="17sp" /> android:textSize="14sp" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="24dp"> android:layout_marginTop="24dp"
android:layout_marginBottom="10dp">
<androidx.appcompat.widget.AppCompatButton <androidx.appcompat.widget.AppCompatButton
android:id="@+id/dialog_cancel" android:id="@+id/dialog_cancel"
......
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
android:layout_marginHorizontal="113dp" android:layout_marginHorizontal="113dp"
android:layout_marginTop="14dp" android:layout_marginTop="14dp"
android:background="@drawable/shape_clean_up" android:background="@drawable/shape_clean_up"
android:text="Clean Junk" android:text="Clean Up"
android:textAllCaps="false" android:textAllCaps="false"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="19sp" android:textSize="19sp"
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
android:ellipsize="end" android:ellipsize="end"
android:gravity="center_vertical" android:gravity="center_vertical"
android:maxLines="2" android:maxLines="2"
tools:text="Clean out junk files to free up space on your phone!" tools:text="Clean out useless files to free up space on your phone!"
android:textColor="#000000" android:textColor="#000000"
android:textSize="16sp" /> android:textSize="16sp" />
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
android:textColor="#666666" android:textColor="#666666"
android:textSize="12sp" android:textSize="12sp"
android:textStyle="bold" android:textStyle="bold"
tools:text="Clean out junk files to free up space on your phone!" /> tools:text="Clean out useless files to free up space on your phone!" />
<TextView <TextView
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<item>1111</item> <item>1111</item>
</string-array> </string-array>
<string name="preparing_advertisement">Preparing advertisement</string> <string name="preparing_advertisement">Preparing advertisement</string>
<string name="notification_clean">Phone slow? Junk clean for space!</string> <string name="notification_clean">Phone slow? Useless files clean for space!</string>
<string name="notification_battery">Watch battery, extend life</string> <string name="notification_battery">Watch battery, extend life</string>
<string name="notification_manager">Manage apps easily with AntiVirus Cleaner Junk</string> <string name="notification_manager">Manage apps easily with AntiVirus Cleaner Junk</string>
<string name="notification_large_file">Low space? Clean large files</string> <string name="notification_large_file">Low space? Clean large files</string>
...@@ -30,10 +30,10 @@ ...@@ -30,10 +30,10 @@
<!-- TODO: Remove or change this placeholder text --> <!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string> <string name="hello_blank_fragment">Hello blank fragment</string>
<string name="fragment_gudie_one_text">Clean up clutter to unlock more space and keep your phone running smoothly.</string> <string name="fragment_gudie_one_text">Clean up clutter to unlock more space and keep your phone running smoothly.</string>
<string name="fragment_gudie_two_text">Quickly clear junk files and free up valuable storage with just a few taps.</string> <string name="fragment_gudie_two_text">Quickly clear useless files and free up valuable storage with just a few taps.</string>
<string name="fragment_gudie_three_text">Clean photos,videos,and audio files to save space and keep your phone tidy.</string> <string name="fragment_gudie_three_text">Clean photos,videos,and audio files to save space and keep your phone tidy.</string>
<string name="fragment_gudie_end_text">Maximize your storage and enjoy a clutter- free phone experience</string> <string name="fragment_gudie_end_text">Maximize your storage and enjoy a clutter- free phone experience</string>
<string name="scan_text">Attention To find junk files completely, the first scan may take a little time</string> <string name="scan_text">Attention To find useless files completely, the first scan may take a little time</string>
<string name="malware_scan">Antivirus Scan</string> <string name="malware_scan">Antivirus Scan</string>
<string name="uninstall">Uninstall</string> <string name="uninstall">Uninstall</string>
<string name="powered_by_trustlook">Powered by Trustlook</string> <string name="powered_by_trustlook">Powered by Trustlook</string>
...@@ -57,4 +57,20 @@ ...@@ -57,4 +57,20 @@
<string name="consent_string">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,Audio files, video files, document file, file storage locations,Battery power, mobile phone standby time, battery temperature, battery voltage, battery technology, battery capacity, battery current, current average value of the battery,The package name, signature, code version, hash, file name, size, service name, etc. of the scanned APK file <string name="consent_string">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,Audio files, video files, document file, file storage locations,Battery power, mobile phone standby time, battery temperature, battery voltage, battery technology, battery capacity, battery current, current average value of the battery,The package name, signature, code version, hash, file name, size, service name, etc. of the scanned APK file
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> 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>
<string name="exit_title_0">Exit</string>
<string name="exit_title_1">Exit Clean Up?</string>
<string name="exit_title_2">Exit Battery Info?</string>
<string name="exit_title_3">Exit Large File Cleaner?</string>
<string name="exit_title_4">Exit Screenshot Cleaner?</string>
<string name="exit_title_5">Exit Similar Photos Cleaner?</string>
<string name="exit_title_6">Exit Image Compression</string>
<string name="exit_content_0">Are you sure you want to exit?</string>
<string name="exit_content_1">Exit Junk Cleaner? Unremoved junkhles may be taking up space.</string>
<string name="exit_content_2">You are currently viewing the detailed battery info. If you exit, you will not be able to continue monitoring the battery data in real time. Are you sure you want to return?</string>
<string name="exit_content_3">The large file cleaner task is in progress. Exiting at this time will interrupt the scanning and cleaning operations. Are you sure you want to exit?</string>
<string name="exit_content_4">Your screenshot cleaning work hasn\'t been completed yet. Are you sure you want to abandon the current cleaning and return?</string>
<string name="exit_content_5">The similar picture cleaning has not been finished yet. Exiting may lead to incomplete cleaning. Are you sure you want to exit this function page?</string>
<string name="exit_content_6">The image compression program is in progress. Are you sure you don\'t want to continue with the image compression</string>
</resources> </resources>
\ No newline at end of file
File added
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