Commit 71854bf7 authored by leichao.gao's avatar leichao.gao

Merge branch 'master' of gitlab.huolea.com:koko/file-recovery-recyclebin

parents bc29bf5f 1b7a9798
......@@ -114,12 +114,12 @@
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.privacyspace.PrivacyManageActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<!-- <activity-->
<!-- android:name=".activity.privacyspace.PrivacyManageActivity"-->
<!-- android:exported="false"-->
<!-- android:launchMode="singleTop"-->
<!-- android:screenOrientation="portrait"-->
<!-- tools:ignore="DiscouragedApi,LockedOrientationActivity" />-->
<activity
android:name=".activity.repeat.RepeatActivity"
android:exported="false"
......@@ -150,30 +150,30 @@
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.privacyspace.PrivacyPinTwoActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.privacyspace.PrivacyPinOneActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.privacyspace.PrivacyImportActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.privacyspace.PrivacySpaceActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<!-- <activity-->
<!-- android:name=".activity.privacyspace.PrivacyPinTwoActivity"-->
<!-- android:exported="false"-->
<!-- android:launchMode="singleTop"-->
<!-- android:screenOrientation="portrait"-->
<!-- tools:ignore="DiscouragedApi,LockedOrientationActivity" />-->
<!-- <activity-->
<!-- android:name=".activity.privacyspace.PrivacyPinOneActivity"-->
<!-- android:exported="false"-->
<!-- android:launchMode="singleTop"-->
<!-- android:screenOrientation="portrait"-->
<!-- tools:ignore="DiscouragedApi,LockedOrientationActivity" />-->
<!-- <activity-->
<!-- android:name=".activity.privacyspace.PrivacyImportActivity"-->
<!-- android:exported="false"-->
<!-- android:launchMode="singleTop"-->
<!-- android:screenOrientation="portrait"-->
<!-- tools:ignore="DiscouragedApi,LockedOrientationActivity" />-->
<!-- <activity-->
<!-- android:name=".activity.privacyspace.PrivacySpaceActivity"-->
<!-- android:exported="false"-->
<!-- android:launchMode="singleTop"-->
<!-- android:screenOrientation="portrait"-->
<!-- tools:ignore="DiscouragedApi,LockedOrientationActivity" />-->
<activity
android:name=".activity.recovery.FileRecoveredActivity"
android:exported="false"
......@@ -192,13 +192,6 @@
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.recovery.FileScanActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<meta-data
android:name="com.google.android.gms.ads.flag.OPTIMIZE_INITIALIZATION"
android:value="true" />
......
......@@ -8,7 +8,6 @@ import android.text.TextUtils
import com.base.filerecoveryrecyclebin.activity.SplashActivity
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.ads.admob.AdmobOpenUtils
import com.base.filerecoveryrecyclebin.ads.max.AdMaxInit.initAdMax
import com.base.filerecoveryrecyclebin.bean.ConstObject.ifAgreePrivacy
import com.base.filerecoveryrecyclebin.fcm.FCMManager
import com.base.filerecoveryrecyclebin.fcm.RecoveryTimerManager
......@@ -20,7 +19,6 @@ import com.base.filerecoveryrecyclebin.utils.AppPreferences
import com.base.filerecoveryrecyclebin.utils.InstallHelps
import com.base.filerecoveryrecyclebin.utils.LogEx
import com.base.filerecoveryrecyclebin.utils.NewComUtils
import com.google.android.gms.ads.MobileAds
import com.google.android.gms.ads.identifier.AdvertisingIdClient
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope
......
......@@ -6,8 +6,6 @@ import android.graphics.Color
import androidx.activity.OnBackPressedCallback
import androidx.core.view.updatePadding
import com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity
import com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacyPinOneActivity
import com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacySpaceActivity
import com.base.filerecoveryrecyclebin.activity.recovery.FileScanResultActivity
import com.base.filerecoveryrecyclebin.activity.repeat.RepeatAnimationActivity
import com.base.filerecoveryrecyclebin.activity.screenshot.ScreenShotAnimationActivity
......@@ -75,16 +73,6 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
putExtra("ScanType", SCAN_DOCUMENTS)
})
}
PRIVACY_SPACE -> {
if (privacyPinPassword.isNotEmpty()) {
startActivity(Intent(this, PrivacyPinOneActivity::class.java))
} else {
startActivity(Intent(this, PrivacySpaceActivity::class.java).apply {
})
}
}
}
finish()
}
......
......@@ -12,23 +12,21 @@ import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.MyApplication
import com.base.filerecoveryrecyclebin.activity.guide.GuideActivity
import com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity
import com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacyPinOneActivity
import com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacySpaceActivity
import com.base.filerecoveryrecyclebin.activity.recovery.FileScanResultActivity
import com.base.filerecoveryrecyclebin.activity.repeat.RepeatActivity
import com.base.filerecoveryrecyclebin.activity.screenshot.ScreenShotActivity
import com.base.filerecoveryrecyclebin.activity.whatsapp.WhatsAppCleanerAnimationActivity
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.bean.ConstObject
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_JUNK_CLEAN_PUSH
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_PRIVACY_SPACE
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_DOCUMENTS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_PHOTOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_VIDEOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_SCREENSHOT_CLEAN
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_SIMILAR_IMAGE
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_WHATSAPP
import com.base.filerecoveryrecyclebin.bean.ConstObject.ifAgreePrivacy
import com.base.filerecoveryrecyclebin.bean.ConstObject.isGuide
import com.base.filerecoveryrecyclebin.bean.ConstObject.privacyPinPassword
import com.base.filerecoveryrecyclebin.databinding.ActivitySplashBinding
import com.base.filerecoveryrecyclebin.fcm.CloseNotificationReceiver
import com.base.filerecoveryrecyclebin.fcm.CloseNotificationReceiver.Companion.NotificationId
......@@ -145,14 +143,8 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
})
}
ID_PRIVACY_SPACE -> {
if (privacyPinPassword.isNotEmpty()) {
startActivity(Intent(this, PrivacyPinOneActivity::class.java))
} else {
startActivity(Intent(this, PrivacySpaceActivity::class.java).apply {
})
}
ID_WHATSAPP -> {
startActivity(Intent(this, WhatsAppCleanerAnimationActivity::class.java))
}
else -> {
......
package com.base.filerecoveryrecyclebin.activity.privacyspace
import android.annotation.SuppressLint
import android.graphics.Color
import android.os.Environment
import android.view.View
import android.widget.Toast
import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.adapter.MediaSubAdapter
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils
import com.base.filerecoveryrecyclebin.bean.MediaBean
import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacyManageBinding
import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.FileHelp.loadFileByFilter
import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.updateMediaStore
import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.utils.LogEx
import com.base.filerecoveryrecyclebin.view.DialogViews.showDeletePermanentlyDialog
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import java.io.File
class PrivacyManageActivity : BaseActivity<ActivityPrivacyManageBinding>() {
private val TAG = "PrivacyManageActivity"
private var mediaType: String = ""
private lateinit var mediaSubAdapter: MediaSubAdapter
override val binding: ActivityPrivacyManageBinding by lazy {
ActivityPrivacyManageBinding.inflate(layoutInflater)
}
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
mediaType = intent?.extras?.getString("mediaType") ?: ""
mediaSubAdapter = MediaSubAdapter()
binding.rv.adapter = mediaSubAdapter
initData()
}
@SuppressLint("SetTextI18n")
override fun initListener() {
binding.llDownload.setOnClickListener {
downloadCopy()
}
binding.llDelete.setOnClickListener {
deleteFilesDirMedia()
}
binding.tvSelectAll.setOnClickListener {
binding.tvSelectAll.isSelected = !binding.tvSelectAll.isSelected
mediaSubAdapter.toggleSelect(binding.tvSelectAll.isSelected)
if (binding.tvSelectAll.isSelected) {
binding.tvSelectAll.text = "Unselect All"
} else {
binding.tvSelectAll.text = "Select All"
}
}
binding.flGuanbi.setOnClickListener {
finish()
}
}
private fun deleteFilesDirMedia() {
showDeletePermanentlyDialog {
AdmobMaxHelper.admobMaxShowInterstitialAd(this) {
lifecycleScope.launch(Dispatchers.IO) {
val list = mediaSubAdapter.getSelectData()
list.forEach {
runCatching { File(it.path).delete() }
}
launch(Dispatchers.Main) {
Toast.makeText(this@PrivacyManageActivity, "success", Toast.LENGTH_SHORT).show()
mediaSubAdapter.removeData(list)
}
}
}
}
}
private fun downloadCopy() = lifecycleScope.launch(Dispatchers.IO) {
mediaSubAdapter.getSelectData().forEach { bean ->
runCatching {
val file = File(bean.path)
val dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
file.copyTo(File(dir, file.name))
}
}
this@PrivacyManageActivity.updateMediaStore()
launch(Dispatchers.Main) {
Toast.makeText(this@PrivacyManageActivity, "success", Toast.LENGTH_SHORT).show()
mediaSubAdapter.toggleSelect(false)
}
}
private fun initData() {
val dir = getFilesMediaDir()
if (!dir.exists()) {
dir.mkdirs()
}
val list = arrayListOf<MediaBean>()
lifecycleScope.loadFileByFilter(folder = dir, filter = { true }, onDo = {
LogEx.logDebug(TAG, "$it")
list.add(MediaBean(it.absolutePath))
}, onFinish = {
lifecycleScope.launch(Dispatchers.Main) {
if (list.isNotEmpty()) {
binding.rv.visibility = View.VISIBLE
mediaSubAdapter.setData(list)
}
}
})
}
private fun getFilesMediaDir(): File {
return if (mediaType == "Photos") {
File(filesDir, "photos")
} else {
File(filesDir, "videos")
}
}
}
\ No newline at end of file
//package com.base.filerecoveryrecyclebin.activity.privacyspace
//
//import android.annotation.SuppressLint
//import android.graphics.Color
//import android.os.Environment
//import android.view.View
//import android.widget.Toast
//import androidx.core.view.updatePadding
//import androidx.lifecycle.lifecycleScope
//import com.base.filerecoveryrecyclebin.adapter.MediaSubAdapter
//import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
//import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils
//import com.base.filerecoveryrecyclebin.bean.MediaBean
//import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacyManageBinding
//import com.base.filerecoveryrecyclebin.help.BaseActivity
//import com.base.filerecoveryrecyclebin.help.FileHelp.loadFileByFilter
//import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.updateMediaStore
//import com.base.filerecoveryrecyclebin.utils.BarUtils
//import com.base.filerecoveryrecyclebin.utils.LogEx
//import com.base.filerecoveryrecyclebin.view.DialogViews.showDeletePermanentlyDialog
//import kotlinx.coroutines.Dispatchers
//import kotlinx.coroutines.launch
//import java.io.File
//
//class PrivacyManageActivity : BaseActivity<ActivityPrivacyManageBinding>() {
//
// private val TAG = "PrivacyManageActivity"
// private var mediaType: String = ""
// private lateinit var mediaSubAdapter: MediaSubAdapter
//
// override val binding: ActivityPrivacyManageBinding by lazy {
// ActivityPrivacyManageBinding.inflate(layoutInflater)
// }
//
//
// override fun initView() {
// BarUtils.setStatusBarLightMode(this, true)
// BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
// binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
// mediaType = intent?.extras?.getString("mediaType") ?: ""
//
//
// mediaSubAdapter = MediaSubAdapter()
// binding.rv.adapter = mediaSubAdapter
// initData()
// }
//
// @SuppressLint("SetTextI18n")
// override fun initListener() {
//
// binding.llDownload.setOnClickListener {
// downloadCopy()
// }
// binding.llDelete.setOnClickListener {
// deleteFilesDirMedia()
// }
// binding.tvSelectAll.setOnClickListener {
// binding.tvSelectAll.isSelected = !binding.tvSelectAll.isSelected
// mediaSubAdapter.toggleSelect(binding.tvSelectAll.isSelected)
// if (binding.tvSelectAll.isSelected) {
// binding.tvSelectAll.text = "Unselect All"
// } else {
// binding.tvSelectAll.text = "Select All"
// }
// }
// binding.flGuanbi.setOnClickListener {
// finish()
// }
// }
//
// private fun deleteFilesDirMedia() {
// showDeletePermanentlyDialog {
// AdmobMaxHelper.admobMaxShowInterstitialAd(this) {
// lifecycleScope.launch(Dispatchers.IO) {
// val list = mediaSubAdapter.getSelectData()
// list.forEach {
// runCatching { File(it.path).delete() }
// }
// launch(Dispatchers.Main) {
// Toast.makeText(this@PrivacyManageActivity, "success", Toast.LENGTH_SHORT).show()
// mediaSubAdapter.removeData(list)
// }
// }
// }
// }
// }
//
// private fun downloadCopy() = lifecycleScope.launch(Dispatchers.IO) {
// mediaSubAdapter.getSelectData().forEach { bean ->
// runCatching {
// val file = File(bean.path)
// val dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
// file.copyTo(File(dir, file.name))
// }
// }
// this@PrivacyManageActivity.updateMediaStore()
// launch(Dispatchers.Main) {
// Toast.makeText(this@PrivacyManageActivity, "success", Toast.LENGTH_SHORT).show()
// mediaSubAdapter.toggleSelect(false)
// }
// }
//
// private fun initData() {
// val dir = getFilesMediaDir()
// if (!dir.exists()) {
// dir.mkdirs()
// }
// val list = arrayListOf<MediaBean>()
//
// lifecycleScope.loadFileByFilter(folder = dir, filter = { true }, onDo = {
// LogEx.logDebug(TAG, "$it")
// list.add(MediaBean(it.absolutePath))
// }, onFinish = {
// lifecycleScope.launch(Dispatchers.Main) {
// if (list.isNotEmpty()) {
// binding.rv.visibility = View.VISIBLE
// mediaSubAdapter.setData(list)
// }
// }
// })
// }
//
// private fun getFilesMediaDir(): File {
// return if (mediaType == "Photos") {
// File(filesDir, "photos")
// } else {
// File(filesDir, "videos")
// }
// }
//
//}
\ No newline at end of file
package com.base.filerecoveryrecyclebin.activity.privacyspace
import android.annotation.SuppressLint
import android.content.Intent
import android.graphics.Color
import android.view.View
import androidx.activity.addCallback
import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils
import com.base.filerecoveryrecyclebin.bean.ConstObject.privacyPinPassword
import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacySpaceBinding
import com.base.filerecoveryrecyclebin.fragment.PrivacyPageFragment
import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.view.DialogViews.showExitFunctionDialog
/**
* 隐私空间
*/
class PrivacySpaceActivity : BaseActivity<ActivityPrivacySpaceBinding>() {
override val binding: ActivityPrivacySpaceBinding by lazy {
ActivityPrivacySpaceBinding.inflate(layoutInflater)
}
private val photosFragment: PrivacyPageFragment by lazy {
PrivacyPageFragment("Photos")
}
private val videosFragment: PrivacyPageFragment by lazy {
PrivacyPageFragment("Videos")
}
private val fragments by lazy {
mutableListOf(photosFragment, videosFragment)
}
@SuppressLint("SetTextI18n")
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.viewpager2.run {
adapter = object : FragmentStateAdapter(this@PrivacySpaceActivity) {
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) {
if (position == 0) {
binding.llPhotos.isSelected = true
binding.llVideos.isSelected = false
} else {
binding.llVideos.isSelected = true
binding.llPhotos.isSelected = false
}
}
})
if (privacyPinPassword.isEmpty()) {
binding.tvUninstallTip.setTextColor(Color.parseColor("#FAB44B"))
binding.tvGoOrSetting.text = "Setting"
} else {
binding.tvPinTip.visibility = View.GONE
binding.tvGoOrSetting.text = "Got it"
}
}
override fun initListener() {
super.initListener()
binding.tvGoOrSetting.setOnClickListener {
if (privacyPinPassword.isEmpty()) {
startActivity(Intent(this, PrivacyPinOneActivity::class.java))
} else {
binding.llTip.visibility = View.GONE
}
}
binding.llPhotos.setOnClickListener {
binding.viewpager2.currentItem = 0
}
binding.llVideos.setOnClickListener {
binding.viewpager2.currentItem = 1
}
onBackPressedDispatcher.addCallback {
showExitFunctionDialog(true) {
if (it) {
AdmobMaxHelper.admobMaxShowInterstitialAd(this@PrivacySpaceActivity) {
finishToMain()
}
} else {
finishToMain()
}
}
}
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
}
}
\ No newline at end of file
//package com.base.filerecoveryrecyclebin.activity.privacyspace
//
//import android.annotation.SuppressLint
//import android.content.Intent
//import android.graphics.Color
//import android.view.View
//import androidx.activity.addCallback
//import androidx.fragment.app.Fragment
//import androidx.viewpager2.adapter.FragmentStateAdapter
//import androidx.viewpager2.widget.ViewPager2
//import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
//import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils
//import com.base.filerecoveryrecyclebin.bean.ConstObject.privacyPinPassword
//import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacySpaceBinding
//import com.base.filerecoveryrecyclebin.fragment.PrivacyPageFragment
//import com.base.filerecoveryrecyclebin.help.BaseActivity
//import com.base.filerecoveryrecyclebin.utils.BarUtils
//import com.base.filerecoveryrecyclebin.view.DialogViews.showExitFunctionDialog
//
///**
// * 隐私空间
// */
//class PrivacySpaceActivity : BaseActivity<ActivityPrivacySpaceBinding>() {
//
// override val binding: ActivityPrivacySpaceBinding by lazy {
// ActivityPrivacySpaceBinding.inflate(layoutInflater)
// }
// private val photosFragment: PrivacyPageFragment by lazy {
// PrivacyPageFragment("Photos")
// }
//
// private val videosFragment: PrivacyPageFragment by lazy {
// PrivacyPageFragment("Videos")
// }
// private val fragments by lazy {
// mutableListOf(photosFragment, videosFragment)
// }
//
//
// @SuppressLint("SetTextI18n")
// override fun initView() {
// BarUtils.setStatusBarLightMode(this, true)
// BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
//
// binding.viewpager2.run {
// adapter = object : FragmentStateAdapter(this@PrivacySpaceActivity) {
// 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) {
// if (position == 0) {
// binding.llPhotos.isSelected = true
// binding.llVideos.isSelected = false
// } else {
// binding.llVideos.isSelected = true
// binding.llPhotos.isSelected = false
// }
// }
// })
// if (privacyPinPassword.isEmpty()) {
// binding.tvUninstallTip.setTextColor(Color.parseColor("#FAB44B"))
// binding.tvGoOrSetting.text = "Setting"
// } else {
// binding.tvPinTip.visibility = View.GONE
// binding.tvGoOrSetting.text = "Got it"
// }
// }
//
// override fun initListener() {
// super.initListener()
//
// binding.tvGoOrSetting.setOnClickListener {
// if (privacyPinPassword.isEmpty()) {
// startActivity(Intent(this, PrivacyPinOneActivity::class.java))
// } else {
// binding.llTip.visibility = View.GONE
// }
// }
// binding.llPhotos.setOnClickListener {
// binding.viewpager2.currentItem = 0
// }
// binding.llVideos.setOnClickListener {
// binding.viewpager2.currentItem = 1
// }
// onBackPressedDispatcher.addCallback {
// showExitFunctionDialog(true) {
// if (it) {
// AdmobMaxHelper.admobMaxShowInterstitialAd(this@PrivacySpaceActivity) {
// finishToMain()
// }
// } else {
// finishToMain()
// }
// }
// }
// binding.flFanhui.setOnClickListener {
// onBackPressedDispatcher.onBackPressed()
// }
//
// }
//
//}
\ No newline at end of file
......@@ -10,7 +10,8 @@ object ConstObject {
const val ID_RECOVERY_PHOTOS = 13000
const val ID_RECOVERY_VIDEOS = 13001
const val ID_RECOVERY_DOCUMENTS = 13002
const val ID_PRIVACY_SPACE = 13003
// const val ID_PRIVACY_SPACE = 13003
const val ID_WHATSAPP = 12001//截图清理
const val RECOVERY_PHOTOS = "Recovery Photos"
const val RECOVERY_VIDEOS = "Recovery Videos"
......
......@@ -16,12 +16,12 @@ import com.base.filerecoveryrecyclebin.MyApplication
import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.activity.SplashActivity
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_JUNK_CLEAN_PUSH
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_PRIVACY_SPACE
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_DOCUMENTS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_PHOTOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_VIDEOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_SCREENSHOT_CLEAN
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_SIMILAR_IMAGE
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_WHATSAPP
import com.base.filerecoveryrecyclebin.utils.AppPreferences
import com.base.filerecoveryrecyclebin.utils.CleanJunkStringResourceManager
import com.base.filerecoveryrecyclebin.utils.DocumentRecoveryStringManager
......@@ -31,6 +31,7 @@ import com.base.filerecoveryrecyclebin.utils.PhotoRecoveryStringManager
import com.base.filerecoveryrecyclebin.utils.PrivacySpaceStringManager
import com.base.filerecoveryrecyclebin.utils.ScreenshotCleanupStringManager
import com.base.filerecoveryrecyclebin.utils.VideoRecoveryStringManager
import com.base.filerecoveryrecyclebin.utils.WhatsappCleanerStringManager
import java.util.Random
/**
......@@ -86,10 +87,10 @@ object NotificationUtil {
btn = "Restore Document"
}
ID_PRIVACY_SPACE -> {
icon = R.mipmap.space
desc = PrivacySpaceStringManager.getNextPrivacySpaceCopy()
btn = "Hide Content"
ID_WHATSAPP -> {
icon = R.mipmap.h_whatsapp
desc = WhatsappCleanerStringManager.getNextCleanerCopy()
btn = "WhatsApp Cleaner"
}
}
bigRemoteViews.setImageViewResource(R.id.iv_icon, icon)
......@@ -271,6 +272,6 @@ object NotificationUtil {
ID_RECOVERY_PHOTOS,
ID_RECOVERY_VIDEOS,
ID_RECOVERY_DOCUMENTS,
ID_PRIVACY_SPACE,
ID_WHATSAPP
)
}
\ No newline at end of file
package com.base.filerecoveryrecyclebin.fragment
import android.annotation.SuppressLint
import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacyImportActivity
import com.base.filerecoveryrecyclebin.adapter.MediaAdapter
import com.base.filerecoveryrecyclebin.bean.MediaBean
import com.base.filerecoveryrecyclebin.bean.MediaTimeBean
import com.base.filerecoveryrecyclebin.databinding.FragmentPrivacyFileImportBinding
import com.base.filerecoveryrecyclebin.help.BaseFragment
import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.getImageMedia
import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.getVideoMedia
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import java.text.SimpleDateFormat
import java.util.HashMap
import java.util.Locale
class PrivacyFileImportFragment(val type: String) : BaseFragment<FragmentPrivacyFileImportBinding>() {
override val binding: FragmentPrivacyFileImportBinding by lazy {
FragmentPrivacyFileImportBinding.inflate(layoutInflater)
}
private lateinit var adapter: MediaAdapter
override fun setView() {
adapter = MediaAdapter { pair ->
binding.tvSelectAll.text = if (pair.first) "Unselect ALL" else "Select All"
(requireActivity() as PrivacyImportActivity).showCardImport(type,pair.second)
}
binding.rv.adapter = adapter
initData()
}
@SuppressLint("SetTextI18n")
override fun setListener() {
binding.tvSelectAll.setOnClickListener {
val text = binding.tvSelectAll.text
if (text == "Unselect ALL") {
adapter.toggleAllSelect(false)
} else {
adapter.toggleAllSelect(true)
}
}
}
private fun initData() = lifecycleScope.launch(Dispatchers.IO) {
val list = arrayListOf<MediaBean>()
if (type == "Photos") {
requireContext().getImageMedia(list)
} else {
requireContext().getVideoMedia(list)
}
val hashMap = HashMap<String, ArrayList<MediaBean>>()
list.forEach {
val time = SimpleDateFormat("yyyy-MMM-dd", Locale.getDefault()).format(it.time)
if (hashMap[time].isNullOrEmpty()) {
hashMap[time] = arrayListOf()
}
hashMap[time]?.add(it)
}
val beanList = hashMap.map {
MediaTimeBean(it.key, it.value)
}
launch(Dispatchers.Main) {
adapter.setData(beanList)
}
}
}
\ No newline at end of file
//package com.base.filerecoveryrecyclebin.fragment
//
//import android.annotation.SuppressLint
//import androidx.lifecycle.lifecycleScope
//import com.base.filerecoveryrecyclebin.adapter.MediaAdapter
//import com.base.filerecoveryrecyclebin.bean.MediaBean
//import com.base.filerecoveryrecyclebin.bean.MediaTimeBean
//import com.base.filerecoveryrecyclebin.databinding.FragmentPrivacyFileImportBinding
//import com.base.filerecoveryrecyclebin.help.BaseFragment
//import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.getImageMedia
//import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.getVideoMedia
//import kotlinx.coroutines.Dispatchers
//import kotlinx.coroutines.launch
//import java.text.SimpleDateFormat
//import java.util.HashMap
//import java.util.Locale
//
//class PrivacyFileImportFragment(val type: String) : BaseFragment<FragmentPrivacyFileImportBinding>() {
//
// override val binding: FragmentPrivacyFileImportBinding by lazy {
// FragmentPrivacyFileImportBinding.inflate(layoutInflater)
// }
// private lateinit var adapter: MediaAdapter
//
// override fun setView() {
// adapter = MediaAdapter { pair ->
// binding.tvSelectAll.text = if (pair.first) "Unselect ALL" else "Select All"
// (requireActivity() as PrivacyImportActivity).showCardImport(type,pair.second)
// }
// binding.rv.adapter = adapter
//
// initData()
// }
//
// @SuppressLint("SetTextI18n")
// override fun setListener() {
// binding.tvSelectAll.setOnClickListener {
// val text = binding.tvSelectAll.text
// if (text == "Unselect ALL") {
// adapter.toggleAllSelect(false)
// } else {
// adapter.toggleAllSelect(true)
// }
// }
// }
//
// private fun initData() = lifecycleScope.launch(Dispatchers.IO) {
// val list = arrayListOf<MediaBean>()
// if (type == "Photos") {
// requireContext().getImageMedia(list)
// } else {
// requireContext().getVideoMedia(list)
// }
//
// val hashMap = HashMap<String, ArrayList<MediaBean>>()
// list.forEach {
// val time = SimpleDateFormat("yyyy-MMM-dd", Locale.getDefault()).format(it.time)
// if (hashMap[time].isNullOrEmpty()) {
// hashMap[time] = arrayListOf()
// }
// hashMap[time]?.add(it)
// }
//
// val beanList = hashMap.map {
// MediaTimeBean(it.key, it.value)
// }
//
// launch(Dispatchers.Main) {
// adapter.setData(beanList)
// }
//
// }
//
//
//}
\ No newline at end of file
package com.base.filerecoveryrecyclebin.utils;
import java.util.ArrayList;
import java.util.List;
public class WhatsappCleanerStringManager {
private static final List<String> documentRecoveryCopies = new ArrayList<>();
private static int currentCopyIndex = 0;
static {
// 初始化并添加文案到列表
documentRecoveryCopies.add("Lost a vital document? Our recovery service might be able to help.");
documentRecoveryCopies.add("Can't find an important document? Try our recovery tool today.");
documentRecoveryCopies.add("Accidentally deleted a document? Recover it with ease using our service.");
documentRecoveryCopies.add("Don't panic over lost documents – our recovery feature is here to assist.");
documentRecoveryCopies.add("Regain access to deleted documents with our simple recovery process.");
}
public static String getNextCleanerCopy() {
if (documentRecoveryCopies.isEmpty()) {
return null; // 根据您的需要处理错误情况
}
String copy = documentRecoveryCopies.get(currentCopyIndex);
currentCopyIndex = (currentCopyIndex + 1) % documentRecoveryCopies.size();
return copy;
}
}
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