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 @@ ...@@ -114,12 +114,12 @@
android:launchMode="singleTop" android:launchMode="singleTop"
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity <!-- <activity-->
android:name=".activity.privacyspace.PrivacyManageActivity" <!-- android:name=".activity.privacyspace.PrivacyManageActivity"-->
android:exported="false" <!-- android:exported="false"-->
android:launchMode="singleTop" <!-- android:launchMode="singleTop"-->
android:screenOrientation="portrait" <!-- android:screenOrientation="portrait"-->
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> <!-- tools:ignore="DiscouragedApi,LockedOrientationActivity" />-->
<activity <activity
android:name=".activity.repeat.RepeatActivity" android:name=".activity.repeat.RepeatActivity"
android:exported="false" android:exported="false"
...@@ -150,30 +150,30 @@ ...@@ -150,30 +150,30 @@
android:launchMode="singleTop" android:launchMode="singleTop"
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity <!-- <activity-->
android:name=".activity.privacyspace.PrivacyPinTwoActivity" <!-- android:name=".activity.privacyspace.PrivacyPinTwoActivity"-->
android:exported="false" <!-- android:exported="false"-->
android:launchMode="singleTop" <!-- android:launchMode="singleTop"-->
android:screenOrientation="portrait" <!-- android:screenOrientation="portrait"-->
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> <!-- tools:ignore="DiscouragedApi,LockedOrientationActivity" />-->
<activity <!-- <activity-->
android:name=".activity.privacyspace.PrivacyPinOneActivity" <!-- android:name=".activity.privacyspace.PrivacyPinOneActivity"-->
android:exported="false" <!-- android:exported="false"-->
android:launchMode="singleTop" <!-- android:launchMode="singleTop"-->
android:screenOrientation="portrait" <!-- android:screenOrientation="portrait"-->
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> <!-- tools:ignore="DiscouragedApi,LockedOrientationActivity" />-->
<activity <!-- <activity-->
android:name=".activity.privacyspace.PrivacyImportActivity" <!-- android:name=".activity.privacyspace.PrivacyImportActivity"-->
android:exported="false" <!-- android:exported="false"-->
android:launchMode="singleTop" <!-- android:launchMode="singleTop"-->
android:screenOrientation="portrait" <!-- android:screenOrientation="portrait"-->
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> <!-- tools:ignore="DiscouragedApi,LockedOrientationActivity" />-->
<activity <!-- <activity-->
android:name=".activity.privacyspace.PrivacySpaceActivity" <!-- android:name=".activity.privacyspace.PrivacySpaceActivity"-->
android:exported="false" <!-- android:exported="false"-->
android:launchMode="singleTop" <!-- android:launchMode="singleTop"-->
android:screenOrientation="portrait" <!-- android:screenOrientation="portrait"-->
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> <!-- tools:ignore="DiscouragedApi,LockedOrientationActivity" />-->
<activity <activity
android:name=".activity.recovery.FileRecoveredActivity" android:name=".activity.recovery.FileRecoveredActivity"
android:exported="false" android:exported="false"
...@@ -192,13 +192,6 @@ ...@@ -192,13 +192,6 @@
android:launchMode="singleTop" android:launchMode="singleTop"
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> 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 <meta-data
android:name="com.google.android.gms.ads.flag.OPTIMIZE_INITIALIZATION" android:name="com.google.android.gms.ads.flag.OPTIMIZE_INITIALIZATION"
android:value="true" /> android:value="true" />
......
...@@ -8,7 +8,6 @@ import android.text.TextUtils ...@@ -8,7 +8,6 @@ import android.text.TextUtils
import com.base.filerecoveryrecyclebin.activity.SplashActivity import com.base.filerecoveryrecyclebin.activity.SplashActivity
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.ads.admob.AdmobOpenUtils 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.bean.ConstObject.ifAgreePrivacy
import com.base.filerecoveryrecyclebin.fcm.FCMManager import com.base.filerecoveryrecyclebin.fcm.FCMManager
import com.base.filerecoveryrecyclebin.fcm.RecoveryTimerManager import com.base.filerecoveryrecyclebin.fcm.RecoveryTimerManager
...@@ -20,7 +19,6 @@ import com.base.filerecoveryrecyclebin.utils.AppPreferences ...@@ -20,7 +19,6 @@ import com.base.filerecoveryrecyclebin.utils.AppPreferences
import com.base.filerecoveryrecyclebin.utils.InstallHelps import com.base.filerecoveryrecyclebin.utils.InstallHelps
import com.base.filerecoveryrecyclebin.utils.LogEx import com.base.filerecoveryrecyclebin.utils.LogEx
import com.base.filerecoveryrecyclebin.utils.NewComUtils import com.base.filerecoveryrecyclebin.utils.NewComUtils
import com.google.android.gms.ads.MobileAds
import com.google.android.gms.ads.identifier.AdvertisingIdClient import com.google.android.gms.ads.identifier.AdvertisingIdClient
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope import kotlinx.coroutines.MainScope
......
...@@ -6,8 +6,6 @@ import android.graphics.Color ...@@ -6,8 +6,6 @@ import android.graphics.Color
import androidx.activity.OnBackPressedCallback import androidx.activity.OnBackPressedCallback
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity 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.recovery.FileScanResultActivity
import com.base.filerecoveryrecyclebin.activity.repeat.RepeatAnimationActivity import com.base.filerecoveryrecyclebin.activity.repeat.RepeatAnimationActivity
import com.base.filerecoveryrecyclebin.activity.screenshot.ScreenShotAnimationActivity import com.base.filerecoveryrecyclebin.activity.screenshot.ScreenShotAnimationActivity
...@@ -75,16 +73,6 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() { ...@@ -75,16 +73,6 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
putExtra("ScanType", SCAN_DOCUMENTS) putExtra("ScanType", SCAN_DOCUMENTS)
}) })
} }
PRIVACY_SPACE -> {
if (privacyPinPassword.isNotEmpty()) {
startActivity(Intent(this, PrivacyPinOneActivity::class.java))
} else {
startActivity(Intent(this, PrivacySpaceActivity::class.java).apply {
})
}
}
} }
finish() finish()
} }
......
...@@ -12,23 +12,21 @@ import androidx.lifecycle.lifecycleScope ...@@ -12,23 +12,21 @@ import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.MyApplication import com.base.filerecoveryrecyclebin.MyApplication
import com.base.filerecoveryrecyclebin.activity.guide.GuideActivity import com.base.filerecoveryrecyclebin.activity.guide.GuideActivity
import com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity 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.recovery.FileScanResultActivity
import com.base.filerecoveryrecyclebin.activity.repeat.RepeatActivity import com.base.filerecoveryrecyclebin.activity.repeat.RepeatActivity
import com.base.filerecoveryrecyclebin.activity.screenshot.ScreenShotActivity import com.base.filerecoveryrecyclebin.activity.screenshot.ScreenShotActivity
import com.base.filerecoveryrecyclebin.activity.whatsapp.WhatsAppCleanerAnimationActivity
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.bean.ConstObject import com.base.filerecoveryrecyclebin.bean.ConstObject
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_JUNK_CLEAN_PUSH 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_DOCUMENTS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_PHOTOS 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_RECOVERY_VIDEOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_SCREENSHOT_CLEAN 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_SIMILAR_IMAGE
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_WHATSAPP
import com.base.filerecoveryrecyclebin.bean.ConstObject.ifAgreePrivacy import com.base.filerecoveryrecyclebin.bean.ConstObject.ifAgreePrivacy
import com.base.filerecoveryrecyclebin.bean.ConstObject.isGuide import com.base.filerecoveryrecyclebin.bean.ConstObject.isGuide
import com.base.filerecoveryrecyclebin.bean.ConstObject.privacyPinPassword
import com.base.filerecoveryrecyclebin.databinding.ActivitySplashBinding import com.base.filerecoveryrecyclebin.databinding.ActivitySplashBinding
import com.base.filerecoveryrecyclebin.fcm.CloseNotificationReceiver import com.base.filerecoveryrecyclebin.fcm.CloseNotificationReceiver
import com.base.filerecoveryrecyclebin.fcm.CloseNotificationReceiver.Companion.NotificationId import com.base.filerecoveryrecyclebin.fcm.CloseNotificationReceiver.Companion.NotificationId
...@@ -145,14 +143,8 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() { ...@@ -145,14 +143,8 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
}) })
} }
ID_PRIVACY_SPACE -> { ID_WHATSAPP -> {
if (privacyPinPassword.isNotEmpty()) { startActivity(Intent(this, WhatsAppCleanerAnimationActivity::class.java))
startActivity(Intent(this, PrivacyPinOneActivity::class.java))
} else {
startActivity(Intent(this, PrivacySpaceActivity::class.java).apply {
})
}
} }
else -> { else -> {
......
package com.base.filerecoveryrecyclebin.activity.privacyspace //package com.base.filerecoveryrecyclebin.activity.privacyspace
//
import android.annotation.SuppressLint //import android.annotation.SuppressLint
import android.content.Intent //import android.content.Intent
import android.graphics.Color //import android.graphics.Color
import android.view.View //import android.view.View
import androidx.activity.addCallback //import androidx.activity.addCallback
import androidx.core.view.isVisible //import androidx.core.view.isVisible
import androidx.fragment.app.Fragment //import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope //import androidx.lifecycle.lifecycleScope
import androidx.viewpager2.adapter.FragmentStateAdapter //import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2 //import androidx.viewpager2.widget.ViewPager2
import com.base.filerecoveryrecyclebin.bean.ConstObject.rememberOption //import com.base.filerecoveryrecyclebin.bean.ConstObject.rememberOption
import com.base.filerecoveryrecyclebin.bean.ConstObject.rememberRemove //import com.base.filerecoveryrecyclebin.bean.ConstObject.rememberRemove
import com.base.filerecoveryrecyclebin.bean.MediaBean //import com.base.filerecoveryrecyclebin.bean.MediaBean
import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacyImportBinding //import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacyImportBinding
import com.base.filerecoveryrecyclebin.fragment.PrivacyFileImportFragment //import com.base.filerecoveryrecyclebin.fragment.PrivacyFileImportFragment
import com.base.filerecoveryrecyclebin.help.BaseActivity //import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.KotlinExt.toFormatSize //import com.base.filerecoveryrecyclebin.help.KotlinExt.toFormatSize
import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.updateMediaStore //import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.updateMediaStore
import com.base.filerecoveryrecyclebin.utils.BarUtils //import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.utils.LogEx //import com.base.filerecoveryrecyclebin.utils.LogEx
import com.base.filerecoveryrecyclebin.view.DialogViews.showRemoveOriginalTip //import com.base.filerecoveryrecyclebin.view.DialogViews.showRemoveOriginalTip
import kotlinx.coroutines.Dispatchers //import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch //import kotlinx.coroutines.launch
import java.io.File //import java.io.File
//
class PrivacyImportActivity : BaseActivity<ActivityPrivacyImportBinding>() { //class PrivacyImportActivity : BaseActivity<ActivityPrivacyImportBinding>() {
//
private val TAG = "PrivacyImportActivity" // private val TAG = "PrivacyImportActivity"
//
private val photosImportFragment: PrivacyFileImportFragment by lazy { // private val photosImportFragment: PrivacyFileImportFragment by lazy {
PrivacyFileImportFragment("Photos") // PrivacyFileImportFragment("Photos")
} // }
private val videosImportFragment: PrivacyFileImportFragment by lazy { // private val videosImportFragment: PrivacyFileImportFragment by lazy {
PrivacyFileImportFragment("Videos") // PrivacyFileImportFragment("Videos")
} // }
//
private val fragments by lazy { // private val fragments by lazy {
mutableListOf(photosImportFragment, videosImportFragment) // mutableListOf(photosImportFragment, videosImportFragment)
} // }
//
//
override val binding: ActivityPrivacyImportBinding by lazy { // override val binding: ActivityPrivacyImportBinding by lazy {
ActivityPrivacyImportBinding.inflate(layoutInflater) // ActivityPrivacyImportBinding.inflate(layoutInflater)
} // }
//
//
override fun initView() { // override fun initView() {
BarUtils.setStatusBarLightMode(this, true) // BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT) // BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
//
binding.viewpager2.run { // binding.viewpager2.run {
adapter = object : FragmentStateAdapter(this@PrivacyImportActivity) { // adapter = object : FragmentStateAdapter(this@PrivacyImportActivity) {
override fun getItemCount(): Int { // override fun getItemCount(): Int {
return fragments.size // return fragments.size
} // }
//
override fun createFragment(position: Int): Fragment { // override fun createFragment(position: Int): Fragment {
return fragments[position] // return fragments[position]
} // }
} // }
} // }
binding.viewpager2.registerOnPageChangeCallback(object : // binding.viewpager2.registerOnPageChangeCallback(object :
ViewPager2.OnPageChangeCallback() { // ViewPager2.OnPageChangeCallback() {
override fun onPageSelected(position: Int) { // override fun onPageSelected(position: Int) {
if (position == 0) { // if (position == 0) {
binding.llPhotos.isSelected = true // binding.llPhotos.isSelected = true
binding.llVideos.isSelected = false // binding.llVideos.isSelected = false
} else { // } else {
binding.llVideos.isSelected = true // binding.llVideos.isSelected = true
binding.llPhotos.isSelected = false // binding.llPhotos.isSelected = false
} // }
} // }
}) // })
} // }
//
override fun initListener() { // override fun initListener() {
super.initListener() // super.initListener()
//
binding.llPhotos.setOnClickListener { // binding.llPhotos.setOnClickListener {
binding.viewpager2.currentItem = 0 // binding.viewpager2.currentItem = 0
} // }
binding.llVideos.setOnClickListener { // binding.llVideos.setOnClickListener {
binding.viewpager2.currentItem = 1 // binding.viewpager2.currentItem = 1
} // }
binding.flFanhui.setOnClickListener { // binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed() // onBackPressedDispatcher.onBackPressed()
} // }
onBackPressedDispatcher.addCallback { // onBackPressedDispatcher.addCallback {
finish() // finish()
} // }
} // }
//
private val photosPath = arrayListOf<MediaBean>() // private val photosPath = arrayListOf<MediaBean>()
private val videosPath = arrayListOf<MediaBean>() // private val videosPath = arrayListOf<MediaBean>()
//
@SuppressLint("SetTextI18n") // @SuppressLint("SetTextI18n")
fun showCardImport(type: String, list: List<MediaBean>) { // fun showCardImport(type: String, list: List<MediaBean>) {
if (type == "Photos") { // if (type == "Photos") {
photosPath.clear() // photosPath.clear()
photosPath.addAll(list) // photosPath.addAll(list)
} else { // } else {
videosPath.clear() // videosPath.clear()
videosPath.addAll(list) // videosPath.addAll(list)
} // }
val allSelect = arrayListOf<MediaBean>() // val allSelect = arrayListOf<MediaBean>()
allSelect.addAll(photosPath) // allSelect.addAll(photosPath)
allSelect.addAll(videosPath) // allSelect.addAll(videosPath)
if (allSelect.isNotEmpty()) { // if (allSelect.isNotEmpty()) {
binding.cardImport.isVisible = true // binding.cardImport.isVisible = true
binding.tvSelectNumber.text = "${allSelect.size} Selected" // binding.tvSelectNumber.text = "${allSelect.size} Selected"
binding.tvSize.text = allSelect.sumOf { File(it.path).length() }.toFormatSize() // binding.tvSize.text = allSelect.sumOf { File(it.path).length() }.toFormatSize()
binding.tvImport.setOnClickListener { // binding.tvImport.setOnClickListener {
if (!rememberOption) { // if (!rememberOption) {
showRemoveOriginalTip { isRememberOption, isRemove -> // showRemoveOriginalTip { isRememberOption, isRemove ->
rememberOption = isRememberOption // rememberOption = isRememberOption
rememberRemove = isRemove // rememberRemove = isRemove
copyMediaToPrivacySpace(allSelect) // copyMediaToPrivacySpace(allSelect)
} // }
} else { // } else {
copyMediaToPrivacySpace(allSelect) // copyMediaToPrivacySpace(allSelect)
} // }
} // }
} else { // } else {
binding.tvImport.setOnClickListener {} // binding.tvImport.setOnClickListener {}
binding.cardImport.isVisible = false // binding.cardImport.isVisible = false
} // }
} // }
//
private fun copyMediaToPrivacySpace(allSelect: ArrayList<MediaBean>) { // private fun copyMediaToPrivacySpace(allSelect: ArrayList<MediaBean>) {
binding.flProgress.setOnClickListener { } // binding.flProgress.setOnClickListener { }
binding.flProgress.visibility = View.VISIBLE // binding.flProgress.visibility = View.VISIBLE
lifecycleScope.launch(Dispatchers.IO) { // lifecycleScope.launch(Dispatchers.IO) {
allSelect.forEach { // allSelect.forEach {
LogEx.logDebug(TAG, it.mimeType) // LogEx.logDebug(TAG, it.mimeType)
val dir = filesDir // val dir = filesDir
val file = File(it.path) // val file = File(it.path)
//
runCatching { // runCatching {
if (it.mimeType.contains("image")) { // if (it.mimeType.contains("image")) {
val imageDir = File(dir, "photos") // val imageDir = File(dir, "photos")
file.copyTo(File(imageDir, file.name), true) // file.copyTo(File(imageDir, file.name), true)
} else { // } else {
val videoDir = File(dir, "videos") // val videoDir = File(dir, "videos")
file.copyTo(File(videoDir, file.name), true) // file.copyTo(File(videoDir, file.name), true)
} // }
if (rememberRemove) { // if (rememberRemove) {
file.delete() // file.delete()
} // }
} // }
} // }
updateMediaStore() // updateMediaStore()
//
launch(Dispatchers.Main) { // launch(Dispatchers.Main) {
binding.flProgress.visibility = View.GONE // binding.flProgress.visibility = View.GONE
setResult(0, Intent().apply { putExtra("Result", "Success") }) // setResult(0, Intent().apply { putExtra("Result", "Success") })
finish() // finish()
} // }
} // }
} // }
//
//
} //}
\ No newline at end of file \ No newline at end of file
package com.base.filerecoveryrecyclebin.activity.privacyspace //package com.base.filerecoveryrecyclebin.activity.privacyspace
//
import android.annotation.SuppressLint //import android.annotation.SuppressLint
import android.graphics.Color //import android.graphics.Color
import android.os.Environment //import android.os.Environment
import android.view.View //import android.view.View
import android.widget.Toast //import android.widget.Toast
import androidx.core.view.updatePadding //import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope //import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.adapter.MediaSubAdapter //import com.base.filerecoveryrecyclebin.adapter.MediaSubAdapter
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper //import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils //import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils
import com.base.filerecoveryrecyclebin.bean.MediaBean //import com.base.filerecoveryrecyclebin.bean.MediaBean
import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacyManageBinding //import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacyManageBinding
import com.base.filerecoveryrecyclebin.help.BaseActivity //import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.FileHelp.loadFileByFilter //import com.base.filerecoveryrecyclebin.help.FileHelp.loadFileByFilter
import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.updateMediaStore //import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.updateMediaStore
import com.base.filerecoveryrecyclebin.utils.BarUtils //import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.utils.LogEx //import com.base.filerecoveryrecyclebin.utils.LogEx
import com.base.filerecoveryrecyclebin.view.DialogViews.showDeletePermanentlyDialog //import com.base.filerecoveryrecyclebin.view.DialogViews.showDeletePermanentlyDialog
import kotlinx.coroutines.Dispatchers //import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch //import kotlinx.coroutines.launch
import java.io.File //import java.io.File
//
class PrivacyManageActivity : BaseActivity<ActivityPrivacyManageBinding>() { //class PrivacyManageActivity : BaseActivity<ActivityPrivacyManageBinding>() {
//
private val TAG = "PrivacyManageActivity" // private val TAG = "PrivacyManageActivity"
private var mediaType: String = "" // private var mediaType: String = ""
private lateinit var mediaSubAdapter: MediaSubAdapter // private lateinit var mediaSubAdapter: MediaSubAdapter
//
override val binding: ActivityPrivacyManageBinding by lazy { // override val binding: ActivityPrivacyManageBinding by lazy {
ActivityPrivacyManageBinding.inflate(layoutInflater) // ActivityPrivacyManageBinding.inflate(layoutInflater)
} // }
//
//
override fun initView() { // override fun initView() {
BarUtils.setStatusBarLightMode(this, true) // BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT) // BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight()) // binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
mediaType = intent?.extras?.getString("mediaType") ?: "" // mediaType = intent?.extras?.getString("mediaType") ?: ""
//
//
mediaSubAdapter = MediaSubAdapter() // mediaSubAdapter = MediaSubAdapter()
binding.rv.adapter = mediaSubAdapter // binding.rv.adapter = mediaSubAdapter
initData() // initData()
} // }
//
@SuppressLint("SetTextI18n") // @SuppressLint("SetTextI18n")
override fun initListener() { // override fun initListener() {
//
binding.llDownload.setOnClickListener { // binding.llDownload.setOnClickListener {
downloadCopy() // downloadCopy()
} // }
binding.llDelete.setOnClickListener { // binding.llDelete.setOnClickListener {
deleteFilesDirMedia() // deleteFilesDirMedia()
} // }
binding.tvSelectAll.setOnClickListener { // binding.tvSelectAll.setOnClickListener {
binding.tvSelectAll.isSelected = !binding.tvSelectAll.isSelected // binding.tvSelectAll.isSelected = !binding.tvSelectAll.isSelected
mediaSubAdapter.toggleSelect(binding.tvSelectAll.isSelected) // mediaSubAdapter.toggleSelect(binding.tvSelectAll.isSelected)
if (binding.tvSelectAll.isSelected) { // if (binding.tvSelectAll.isSelected) {
binding.tvSelectAll.text = "Unselect All" // binding.tvSelectAll.text = "Unselect All"
} else { // } else {
binding.tvSelectAll.text = "Select All" // binding.tvSelectAll.text = "Select All"
} // }
} // }
binding.flGuanbi.setOnClickListener { // binding.flGuanbi.setOnClickListener {
finish() // finish()
} // }
} // }
//
private fun deleteFilesDirMedia() { // private fun deleteFilesDirMedia() {
showDeletePermanentlyDialog { // showDeletePermanentlyDialog {
AdmobMaxHelper.admobMaxShowInterstitialAd(this) { // AdmobMaxHelper.admobMaxShowInterstitialAd(this) {
lifecycleScope.launch(Dispatchers.IO) { // lifecycleScope.launch(Dispatchers.IO) {
val list = mediaSubAdapter.getSelectData() // val list = mediaSubAdapter.getSelectData()
list.forEach { // list.forEach {
runCatching { File(it.path).delete() } // runCatching { File(it.path).delete() }
} // }
launch(Dispatchers.Main) { // launch(Dispatchers.Main) {
Toast.makeText(this@PrivacyManageActivity, "success", Toast.LENGTH_SHORT).show() // Toast.makeText(this@PrivacyManageActivity, "success", Toast.LENGTH_SHORT).show()
mediaSubAdapter.removeData(list) // mediaSubAdapter.removeData(list)
} // }
} // }
} // }
} // }
} // }
//
private fun downloadCopy() = lifecycleScope.launch(Dispatchers.IO) { // private fun downloadCopy() = lifecycleScope.launch(Dispatchers.IO) {
mediaSubAdapter.getSelectData().forEach { bean -> // mediaSubAdapter.getSelectData().forEach { bean ->
runCatching { // runCatching {
val file = File(bean.path) // val file = File(bean.path)
val dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) // val dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
file.copyTo(File(dir, file.name)) // file.copyTo(File(dir, file.name))
} // }
} // }
this@PrivacyManageActivity.updateMediaStore() // this@PrivacyManageActivity.updateMediaStore()
launch(Dispatchers.Main) { // launch(Dispatchers.Main) {
Toast.makeText(this@PrivacyManageActivity, "success", Toast.LENGTH_SHORT).show() // Toast.makeText(this@PrivacyManageActivity, "success", Toast.LENGTH_SHORT).show()
mediaSubAdapter.toggleSelect(false) // mediaSubAdapter.toggleSelect(false)
} // }
} // }
//
private fun initData() { // private fun initData() {
val dir = getFilesMediaDir() // val dir = getFilesMediaDir()
if (!dir.exists()) { // if (!dir.exists()) {
dir.mkdirs() // dir.mkdirs()
} // }
val list = arrayListOf<MediaBean>() // val list = arrayListOf<MediaBean>()
//
lifecycleScope.loadFileByFilter(folder = dir, filter = { true }, onDo = { // lifecycleScope.loadFileByFilter(folder = dir, filter = { true }, onDo = {
LogEx.logDebug(TAG, "$it") // LogEx.logDebug(TAG, "$it")
list.add(MediaBean(it.absolutePath)) // list.add(MediaBean(it.absolutePath))
}, onFinish = { // }, onFinish = {
lifecycleScope.launch(Dispatchers.Main) { // lifecycleScope.launch(Dispatchers.Main) {
if (list.isNotEmpty()) { // if (list.isNotEmpty()) {
binding.rv.visibility = View.VISIBLE // binding.rv.visibility = View.VISIBLE
mediaSubAdapter.setData(list) // mediaSubAdapter.setData(list)
} // }
} // }
}) // })
} // }
//
private fun getFilesMediaDir(): File { // private fun getFilesMediaDir(): File {
return if (mediaType == "Photos") { // return if (mediaType == "Photos") {
File(filesDir, "photos") // File(filesDir, "photos")
} else { // } else {
File(filesDir, "videos") // File(filesDir, "videos")
} // }
} // }
//
} //}
\ No newline at end of file \ No newline at end of file
package com.base.filerecoveryrecyclebin.activity.privacyspace //package com.base.filerecoveryrecyclebin.activity.privacyspace
//
import android.content.Intent //import android.content.Intent
import android.graphics.Color //import android.graphics.Color
import android.os.Build //import android.os.Build
import android.view.KeyEvent //import android.view.KeyEvent
import androidx.activity.addCallback //import androidx.activity.addCallback
import androidx.annotation.RequiresApi //import androidx.annotation.RequiresApi
import androidx.core.content.ContextCompat //import androidx.core.content.ContextCompat
import androidx.core.widget.addTextChangedListener //import androidx.core.widget.addTextChangedListener
import androidx.lifecycle.lifecycleScope //import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.R //import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.bean.ConstObject.privacyPinPassword //import com.base.filerecoveryrecyclebin.bean.ConstObject.privacyPinPassword
import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacyPinOneBinding //import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacyPinOneBinding
import com.base.filerecoveryrecyclebin.help.BaseActivity //import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.KotlinExt.array2String //import com.base.filerecoveryrecyclebin.help.KotlinExt.array2String
import com.base.filerecoveryrecyclebin.utils.BarUtils //import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.utils.LogEx //import com.base.filerecoveryrecyclebin.utils.LogEx
import com.base.filerecoveryrecyclebin.view.AsteriskPasswordTransformationMethod //import com.base.filerecoveryrecyclebin.view.AsteriskPasswordTransformationMethod
import com.base.filerecoveryrecyclebin.view.DialogViews.showPinReEnterDialog //import com.base.filerecoveryrecyclebin.view.DialogViews.showPinReEnterDialog
import kotlinx.coroutines.delay //import kotlinx.coroutines.delay
import kotlinx.coroutines.launch //import kotlinx.coroutines.launch
//
class PrivacyPinOneActivity : BaseActivity<ActivityPrivacyPinOneBinding>() { //class PrivacyPinOneActivity : BaseActivity<ActivityPrivacyPinOneBinding>() {
//
private val TAG = "PrivacyPinActivity" // private val TAG = "PrivacyPinActivity"
private val firstInput = arrayOf("", "", "", "") // private val firstInput = arrayOf("", "", "", "")
//
override val binding: ActivityPrivacyPinOneBinding by lazy { // override val binding: ActivityPrivacyPinOneBinding by lazy {
ActivityPrivacyPinOneBinding.inflate(layoutInflater) // ActivityPrivacyPinOneBinding.inflate(layoutInflater)
} // }
//
//
override fun initView() { // override fun initView() {
BarUtils.setStatusBarLightMode(this, true) // BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT) // BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
//
} // }
//
@RequiresApi(Build.VERSION_CODES.O) // @RequiresApi(Build.VERSION_CODES.O)
override fun initListener() { // override fun initListener() {
//
binding.flFanhui.setOnClickListener { // binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed() // onBackPressedDispatcher.onBackPressed()
} // }
onBackPressedDispatcher.addCallback { // onBackPressedDispatcher.addCallback {
finishToMain() // finishToMain()
} // }
//
setInput() // setInput()
//
setDeleteKey() // setDeleteKey()
//
//
} // }
//
private fun setDeleteKey() { // private fun setDeleteKey() {
arrayOf(binding.edit1, binding.edit2, binding.edit3, binding.edit4).forEach { // arrayOf(binding.edit1, binding.edit2, binding.edit3, binding.edit4).forEach {
it.setOnKeyListener { v, actionId, event -> // it.setOnKeyListener { v, actionId, event ->
//
if ((event.action == KeyEvent.ACTION_DOWN) && (event.keyCode == KeyEvent.KEYCODE_DEL)) { // if ((event.action == KeyEvent.ACTION_DOWN) && (event.keyCode == KeyEvent.KEYCODE_DEL)) {
if (binding.edit1.hasFocus()) { // if (binding.edit1.hasFocus()) {
binding.edit1.setText("") // binding.edit1.setText("")
} // }
if (binding.edit2.hasFocus()) { // if (binding.edit2.hasFocus()) {
binding.edit2.setText("") // binding.edit2.setText("")
binding.edit1.requestFocus() // binding.edit1.requestFocus()
} // }
if (binding.edit3.hasFocus()) { // if (binding.edit3.hasFocus()) {
binding.edit3.setText("") // binding.edit3.setText("")
binding.edit2.requestFocus() // binding.edit2.requestFocus()
} // }
if (binding.edit4.hasFocus()) { // if (binding.edit4.hasFocus()) {
binding.edit4.setText("") // binding.edit4.setText("")
binding.edit3.requestFocus() // binding.edit3.requestFocus()
} // }
true // true
} else { // } else {
false // false
} // }
} // }
//
} // }
//
} // }
//
private fun startJump() { // private fun startJump() {
if (privacyPinPassword.isNotEmpty()) { // if (privacyPinPassword.isNotEmpty()) {
if (privacyPinPassword == firstInput.array2String()) { // if (privacyPinPassword == firstInput.array2String()) {
startActivity(Intent(this, PrivacySpaceActivity::class.java)) // startActivity(Intent(this, PrivacySpaceActivity::class.java))
finish() // finish()
} else { // } else {
warmPassword() // warmPassword()
} // }
} else { // } else {
launcher.launch( // launcher.launch(
Intent(this, PrivacyPinTwoActivity::class.java).apply { // Intent(this, PrivacyPinTwoActivity::class.java).apply {
addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) // addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
putExtra("FirstInput", firstInput.array2String()) // putExtra("FirstInput", firstInput.array2String())
} // }
) { // ) {
startActivity(Intent(this, PrivacySpaceActivity::class.java)) // startActivity(Intent(this, PrivacySpaceActivity::class.java))
finish() // finish()
} // }
} // }
//
} // }
//
private fun setInput() { // private fun setInput() {
binding.edit1.setOnFocusChangeListener { v, hasFocus -> // binding.edit1.setOnFocusChangeListener { v, hasFocus ->
cancelWarmPassword() // cancelWarmPassword()
binding.fl1.isSelected = hasFocus // binding.fl1.isSelected = hasFocus
} // }
binding.edit2.setOnFocusChangeListener { v, hasFocus -> // binding.edit2.setOnFocusChangeListener { v, hasFocus ->
cancelWarmPassword() // cancelWarmPassword()
binding.fl2.isSelected = hasFocus // binding.fl2.isSelected = hasFocus
} // }
binding.edit3.setOnFocusChangeListener { v, hasFocus -> // binding.edit3.setOnFocusChangeListener { v, hasFocus ->
cancelWarmPassword() // cancelWarmPassword()
binding.fl3.isSelected = hasFocus // binding.fl3.isSelected = hasFocus
} // }
binding.edit4.setOnFocusChangeListener { v, hasFocus -> // binding.edit4.setOnFocusChangeListener { v, hasFocus ->
cancelWarmPassword() // cancelWarmPassword()
binding.fl4.isSelected = hasFocus // binding.fl4.isSelected = hasFocus
} // }
binding.edit1.transformationMethod = AsteriskPasswordTransformationMethod() // binding.edit1.transformationMethod = AsteriskPasswordTransformationMethod()
binding.edit2.transformationMethod = AsteriskPasswordTransformationMethod() // binding.edit2.transformationMethod = AsteriskPasswordTransformationMethod()
binding.edit3.transformationMethod = AsteriskPasswordTransformationMethod() // binding.edit3.transformationMethod = AsteriskPasswordTransformationMethod()
binding.edit4.transformationMethod = AsteriskPasswordTransformationMethod() // binding.edit4.transformationMethod = AsteriskPasswordTransformationMethod()
//
binding.edit1.requestFocus() // binding.edit1.requestFocus()
//
binding.edit1.addTextChangedListener { // binding.edit1.addTextChangedListener {
val text = it.toString() // val text = it.toString()
LogEx.logDebug(TAG, "text=$text") // LogEx.logDebug(TAG, "text=$text")
if (text.isNotEmpty()) { // if (text.isNotEmpty()) {
firstInput[0] = text // firstInput[0] = text
binding.edit2.requestFocus() // binding.edit2.requestFocus()
} // }
} // }
binding.edit2.addTextChangedListener { // binding.edit2.addTextChangedListener {
val text = it.toString() // val text = it.toString()
LogEx.logDebug(TAG, "text=$text") // LogEx.logDebug(TAG, "text=$text")
if (text.isNotEmpty()) { // if (text.isNotEmpty()) {
firstInput[1] = text // firstInput[1] = text
binding.edit3.requestFocus() // binding.edit3.requestFocus()
} // }
} // }
binding.edit3.addTextChangedListener { // binding.edit3.addTextChangedListener {
val text = it.toString() // val text = it.toString()
LogEx.logDebug(TAG, "text=$text") // LogEx.logDebug(TAG, "text=$text")
if (text.isNotEmpty()) { // if (text.isNotEmpty()) {
firstInput[2] = text // firstInput[2] = text
binding.edit4.requestFocus() // binding.edit4.requestFocus()
} // }
} // }
binding.edit4.addTextChangedListener { // binding.edit4.addTextChangedListener {
val text = it.toString() // val text = it.toString()
LogEx.logDebug(TAG, "text=$text") // LogEx.logDebug(TAG, "text=$text")
if (text.isNotEmpty()) { // if (text.isNotEmpty()) {
firstInput[3] = text // firstInput[3] = text
startJump() // startJump()
} // }
} // }
} // }
//
private fun warmPassword() { // private fun warmPassword() {
binding.fl1.tag = true // binding.fl1.tag = true
binding.fl1.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm) // binding.fl1.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm)
binding.fl2.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm) // binding.fl2.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm)
binding.fl3.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm) // binding.fl3.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm)
binding.fl4.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm) // binding.fl4.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm)
binding.edit1.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b)) // binding.edit1.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b))
binding.edit2.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b)) // binding.edit2.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b))
binding.edit3.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b)) // binding.edit3.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b))
binding.edit4.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b)) // binding.edit4.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b))
//
val dialog = showPinReEnterDialog() // val dialog = showPinReEnterDialog()
lifecycleScope.launch { // lifecycleScope.launch {
delay(2000) // delay(2000)
dialog.dismiss() // dialog.dismiss()
} // }
} // }
//
private fun cancelWarmPassword() { // private fun cancelWarmPassword() {
if (binding.fl1.tag == true) { // if (binding.fl1.tag == true) {
binding.fl1.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin) // binding.fl1.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin)
binding.fl2.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin) // binding.fl2.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin)
binding.fl3.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin) // binding.fl3.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin)
binding.fl4.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin) // binding.fl4.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin)
binding.edit1.setTextColor(ContextCompat.getColor(this, R.color.black)) // binding.edit1.setTextColor(ContextCompat.getColor(this, R.color.black))
binding.edit2.setTextColor(ContextCompat.getColor(this, R.color.black)) // binding.edit2.setTextColor(ContextCompat.getColor(this, R.color.black))
binding.edit3.setTextColor(ContextCompat.getColor(this, R.color.black)) // binding.edit3.setTextColor(ContextCompat.getColor(this, R.color.black))
binding.edit4.setTextColor(ContextCompat.getColor(this, R.color.black)) // binding.edit4.setTextColor(ContextCompat.getColor(this, R.color.black))
binding.fl1.tag = false // binding.fl1.tag = false
} // }
//
} // }
//
} //}
\ No newline at end of file \ No newline at end of file
package com.base.filerecoveryrecyclebin.activity.privacyspace //package com.base.filerecoveryrecyclebin.activity.privacyspace
//
import android.graphics.Color //import android.graphics.Color
import android.view.KeyEvent //import android.view.KeyEvent
import android.view.View //import android.view.View
import android.view.inputmethod.InputMethodManager //import android.view.inputmethod.InputMethodManager
import androidx.activity.addCallback //import androidx.activity.addCallback
import androidx.core.content.ContextCompat //import androidx.core.content.ContextCompat
import androidx.core.widget.addTextChangedListener //import androidx.core.widget.addTextChangedListener
import androidx.lifecycle.lifecycleScope //import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.R //import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.bean.ConstObject.privacyPinPassword //import com.base.filerecoveryrecyclebin.bean.ConstObject.privacyPinPassword
import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacyPinTwoBinding //import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacyPinTwoBinding
import com.base.filerecoveryrecyclebin.help.BaseActivity //import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.KotlinExt.array2String //import com.base.filerecoveryrecyclebin.help.KotlinExt.array2String
import com.base.filerecoveryrecyclebin.utils.BarUtils //import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.utils.LogEx //import com.base.filerecoveryrecyclebin.utils.LogEx
import com.base.filerecoveryrecyclebin.view.AsteriskPasswordTransformationMethod //import com.base.filerecoveryrecyclebin.view.AsteriskPasswordTransformationMethod
import com.base.filerecoveryrecyclebin.view.DialogViews.showPinReEnterDialog //import com.base.filerecoveryrecyclebin.view.DialogViews.showPinReEnterDialog
import kotlinx.coroutines.delay //import kotlinx.coroutines.delay
import kotlinx.coroutines.launch //import kotlinx.coroutines.launch
//
//
class PrivacyPinTwoActivity : BaseActivity<ActivityPrivacyPinTwoBinding>() { //class PrivacyPinTwoActivity : BaseActivity<ActivityPrivacyPinTwoBinding>() {
//
private var firstInput = "null" // private var firstInput = "null"
private val secondInput = arrayOf("", "", "", "") // private val secondInput = arrayOf("", "", "", "")
private val TAG = "PrivacyPinTwoActivity" // private val TAG = "PrivacyPinTwoActivity"
//
override val binding: ActivityPrivacyPinTwoBinding by lazy { // override val binding: ActivityPrivacyPinTwoBinding by lazy {
ActivityPrivacyPinTwoBinding.inflate(layoutInflater) // ActivityPrivacyPinTwoBinding.inflate(layoutInflater)
} // }
//
//
override fun initView() { // override fun initView() {
BarUtils.setStatusBarLightMode(this, true) // BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT) // BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
firstInput = intent.extras?.getString("FirstInput") ?: "null" // firstInput = intent.extras?.getString("FirstInput") ?: "null"
LogEx.logDebug(TAG, "firstInput=$firstInput") // LogEx.logDebug(TAG, "firstInput=$firstInput")
} // }
//
override fun initListener() { // override fun initListener() {
binding.flFanhui.setOnClickListener { // binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed() // onBackPressedDispatcher.onBackPressed()
} // }
onBackPressedDispatcher.addCallback { // onBackPressedDispatcher.addCallback {
finish() // finish()
} // }
setInput() // setInput()
setDeleteKey() // setDeleteKey()
} // }
//
private fun hideInput() { // private fun hideInput() {
val imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager // val imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(binding.edit4.windowToken, 0) // imm.hideSoftInputFromWindow(binding.edit4.windowToken, 0)
binding.edit4.clearFocus() // binding.edit4.clearFocus()
} // }
//
private fun warmPassword() { // private fun warmPassword() {
binding.fl1.tag = true // binding.fl1.tag = true
binding.fl1.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm) // binding.fl1.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm)
binding.fl2.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm) // binding.fl2.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm)
binding.fl3.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm) // binding.fl3.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm)
binding.fl4.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm) // binding.fl4.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin_warm)
binding.edit1.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b)) // binding.edit1.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b))
binding.edit2.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b)) // binding.edit2.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b))
binding.edit3.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b)) // binding.edit3.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b))
binding.edit4.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b)) // binding.edit4.setTextColor(ContextCompat.getColor(this, R.color.color_fa020b))
//
val dialog = showPinReEnterDialog() // val dialog = showPinReEnterDialog()
lifecycleScope.launch { // lifecycleScope.launch {
delay(2000) // delay(2000)
dialog.dismiss() // dialog.dismiss()
} // }
} // }
//
private fun cancelWarmPassword() { // private fun cancelWarmPassword() {
if (binding.fl1.tag == true) { // if (binding.fl1.tag == true) {
binding.fl1.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin) // binding.fl1.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin)
binding.fl2.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin) // binding.fl2.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin)
binding.fl3.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin) // binding.fl3.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin)
binding.fl4.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin) // binding.fl4.background = ContextCompat.getDrawable(this, R.drawable.bg_border_pin)
binding.edit1.setTextColor(ContextCompat.getColor(this, R.color.black)) // binding.edit1.setTextColor(ContextCompat.getColor(this, R.color.black))
binding.edit2.setTextColor(ContextCompat.getColor(this, R.color.black)) // binding.edit2.setTextColor(ContextCompat.getColor(this, R.color.black))
binding.edit3.setTextColor(ContextCompat.getColor(this, R.color.black)) // binding.edit3.setTextColor(ContextCompat.getColor(this, R.color.black))
binding.edit4.setTextColor(ContextCompat.getColor(this, R.color.black)) // binding.edit4.setTextColor(ContextCompat.getColor(this, R.color.black))
binding.fl1.tag = false // binding.fl1.tag = false
} // }
//
} // }
//
private fun startJump() { // private fun startJump() {
binding.llInput.visibility = View.GONE // binding.llInput.visibility = View.GONE
binding.llRememberTip.visibility = View.VISIBLE // binding.llRememberTip.visibility = View.VISIBLE
hideInput() // hideInput()
onBackPressedDispatcher.addCallback { // onBackPressedDispatcher.addCallback {
setResult(0, intent) // setResult(0, intent)
finish() // finish()
} // }
binding.flFanhui.setOnClickListener { // binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed() // onBackPressedDispatcher.onBackPressed()
} // }
//
} // }
//
private fun setInput() { // private fun setInput() {
binding.edit1.setOnFocusChangeListener { v, hasFocus -> // binding.edit1.setOnFocusChangeListener { v, hasFocus ->
cancelWarmPassword() // cancelWarmPassword()
binding.fl1.isSelected = hasFocus // binding.fl1.isSelected = hasFocus
} // }
binding.edit2.setOnFocusChangeListener { v, hasFocus -> // binding.edit2.setOnFocusChangeListener { v, hasFocus ->
cancelWarmPassword() // cancelWarmPassword()
binding.fl2.isSelected = hasFocus // binding.fl2.isSelected = hasFocus
} // }
binding.edit3.setOnFocusChangeListener { v, hasFocus -> // binding.edit3.setOnFocusChangeListener { v, hasFocus ->
cancelWarmPassword() // cancelWarmPassword()
binding.fl3.isSelected = hasFocus // binding.fl3.isSelected = hasFocus
} // }
binding.edit4.setOnFocusChangeListener { v, hasFocus -> // binding.edit4.setOnFocusChangeListener { v, hasFocus ->
cancelWarmPassword() // cancelWarmPassword()
binding.fl4.isSelected = hasFocus // binding.fl4.isSelected = hasFocus
} // }
binding.edit1.transformationMethod = AsteriskPasswordTransformationMethod() // binding.edit1.transformationMethod = AsteriskPasswordTransformationMethod()
binding.edit2.transformationMethod = AsteriskPasswordTransformationMethod() // binding.edit2.transformationMethod = AsteriskPasswordTransformationMethod()
binding.edit3.transformationMethod = AsteriskPasswordTransformationMethod() // binding.edit3.transformationMethod = AsteriskPasswordTransformationMethod()
binding.edit4.transformationMethod = AsteriskPasswordTransformationMethod() // binding.edit4.transformationMethod = AsteriskPasswordTransformationMethod()
//
binding.edit1.requestFocus() // binding.edit1.requestFocus()
//
binding.edit1.addTextChangedListener { // binding.edit1.addTextChangedListener {
val text = it.toString() // val text = it.toString()
LogEx.logDebug(TAG, "text=$text") // LogEx.logDebug(TAG, "text=$text")
if (text.isNotEmpty()) { // if (text.isNotEmpty()) {
secondInput[0] = text // secondInput[0] = text
binding.edit2.requestFocus() // binding.edit2.requestFocus()
} // }
} // }
binding.edit2.addTextChangedListener { // binding.edit2.addTextChangedListener {
val text = it.toString() // val text = it.toString()
LogEx.logDebug(TAG, "text=$text") // LogEx.logDebug(TAG, "text=$text")
if (text.isNotEmpty()) { // if (text.isNotEmpty()) {
secondInput[1] = text // secondInput[1] = text
binding.edit3.requestFocus() // binding.edit3.requestFocus()
} // }
} // }
binding.edit3.addTextChangedListener { // binding.edit3.addTextChangedListener {
val text = it.toString() // val text = it.toString()
LogEx.logDebug(TAG, "text=$text") // LogEx.logDebug(TAG, "text=$text")
if (text.isNotEmpty()) { // if (text.isNotEmpty()) {
secondInput[2] = text // secondInput[2] = text
binding.edit4.requestFocus() // binding.edit4.requestFocus()
} // }
} // }
binding.edit4.addTextChangedListener { // binding.edit4.addTextChangedListener {
val text = it.toString() // val text = it.toString()
LogEx.logDebug(TAG, "text=$text") // LogEx.logDebug(TAG, "text=$text")
if (text.isNotEmpty()) { // if (text.isNotEmpty()) {
secondInput[3] = text // secondInput[3] = text
if (firstInput == secondInput.array2String()) { // if (firstInput == secondInput.array2String()) {
privacyPinPassword = firstInput // privacyPinPassword = firstInput
startJump() // startJump()
} else { // } else {
warmPassword() // warmPassword()
} // }
} // }
} // }
} // }
//
//
private fun setDeleteKey() { // private fun setDeleteKey() {
arrayOf(binding.edit1, binding.edit2, binding.edit3, binding.edit4).forEach { // arrayOf(binding.edit1, binding.edit2, binding.edit3, binding.edit4).forEach {
it.setOnKeyListener { v, actionId, event -> // it.setOnKeyListener { v, actionId, event ->
//
if ((event.action == KeyEvent.ACTION_DOWN) && (event.keyCode == KeyEvent.KEYCODE_DEL)) { // if ((event.action == KeyEvent.ACTION_DOWN) && (event.keyCode == KeyEvent.KEYCODE_DEL)) {
if (binding.edit1.hasFocus()) { // if (binding.edit1.hasFocus()) {
binding.edit1.setText("") // binding.edit1.setText("")
} // }
if (binding.edit2.hasFocus()) { // if (binding.edit2.hasFocus()) {
binding.edit2.setText("") // binding.edit2.setText("")
binding.edit1.requestFocus() // binding.edit1.requestFocus()
} // }
if (binding.edit3.hasFocus()) { // if (binding.edit3.hasFocus()) {
binding.edit3.setText("") // binding.edit3.setText("")
binding.edit2.requestFocus() // binding.edit2.requestFocus()
} // }
if (binding.edit4.hasFocus()) { // if (binding.edit4.hasFocus()) {
binding.edit4.setText("") // binding.edit4.setText("")
binding.edit3.requestFocus() // binding.edit3.requestFocus()
} // }
true // true
} else { // } else {
false // false
} // }
} // }
//
} // }
} // }
//
//
} //}
\ No newline at end of file \ No newline at end of file
package com.base.filerecoveryrecyclebin.activity.privacyspace //package com.base.filerecoveryrecyclebin.activity.privacyspace
//
import android.annotation.SuppressLint //import android.annotation.SuppressLint
import android.content.Intent //import android.content.Intent
import android.graphics.Color //import android.graphics.Color
import android.view.View //import android.view.View
import androidx.activity.addCallback //import androidx.activity.addCallback
import androidx.fragment.app.Fragment //import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter //import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2 //import androidx.viewpager2.widget.ViewPager2
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper //import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils //import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils
import com.base.filerecoveryrecyclebin.bean.ConstObject.privacyPinPassword //import com.base.filerecoveryrecyclebin.bean.ConstObject.privacyPinPassword
import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacySpaceBinding //import com.base.filerecoveryrecyclebin.databinding.ActivityPrivacySpaceBinding
import com.base.filerecoveryrecyclebin.fragment.PrivacyPageFragment //import com.base.filerecoveryrecyclebin.fragment.PrivacyPageFragment
import com.base.filerecoveryrecyclebin.help.BaseActivity //import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.utils.BarUtils //import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.view.DialogViews.showExitFunctionDialog //import com.base.filerecoveryrecyclebin.view.DialogViews.showExitFunctionDialog
//
/** ///**
* 隐私空间 // * 隐私空间
*/ // */
class PrivacySpaceActivity : BaseActivity<ActivityPrivacySpaceBinding>() { //class PrivacySpaceActivity : BaseActivity<ActivityPrivacySpaceBinding>() {
//
override val binding: ActivityPrivacySpaceBinding by lazy { // override val binding: ActivityPrivacySpaceBinding by lazy {
ActivityPrivacySpaceBinding.inflate(layoutInflater) // ActivityPrivacySpaceBinding.inflate(layoutInflater)
} // }
private val photosFragment: PrivacyPageFragment by lazy { // private val photosFragment: PrivacyPageFragment by lazy {
PrivacyPageFragment("Photos") // PrivacyPageFragment("Photos")
} // }
//
private val videosFragment: PrivacyPageFragment by lazy { // private val videosFragment: PrivacyPageFragment by lazy {
PrivacyPageFragment("Videos") // PrivacyPageFragment("Videos")
} // }
private val fragments by lazy { // private val fragments by lazy {
mutableListOf(photosFragment, videosFragment) // mutableListOf(photosFragment, videosFragment)
} // }
//
//
@SuppressLint("SetTextI18n") // @SuppressLint("SetTextI18n")
override fun initView() { // override fun initView() {
BarUtils.setStatusBarLightMode(this, true) // BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT) // BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
//
binding.viewpager2.run { // binding.viewpager2.run {
adapter = object : FragmentStateAdapter(this@PrivacySpaceActivity) { // adapter = object : FragmentStateAdapter(this@PrivacySpaceActivity) {
override fun getItemCount(): Int { // override fun getItemCount(): Int {
return fragments.size // return fragments.size
} // }
//
override fun createFragment(position: Int): Fragment { // override fun createFragment(position: Int): Fragment {
return fragments[position] // return fragments[position]
} // }
} // }
} // }
binding.viewpager2.registerOnPageChangeCallback(object : // binding.viewpager2.registerOnPageChangeCallback(object :
ViewPager2.OnPageChangeCallback() { // ViewPager2.OnPageChangeCallback() {
override fun onPageSelected(position: Int) { // override fun onPageSelected(position: Int) {
if (position == 0) { // if (position == 0) {
binding.llPhotos.isSelected = true // binding.llPhotos.isSelected = true
binding.llVideos.isSelected = false // binding.llVideos.isSelected = false
} else { // } else {
binding.llVideos.isSelected = true // binding.llVideos.isSelected = true
binding.llPhotos.isSelected = false // binding.llPhotos.isSelected = false
} // }
} // }
}) // })
if (privacyPinPassword.isEmpty()) { // if (privacyPinPassword.isEmpty()) {
binding.tvUninstallTip.setTextColor(Color.parseColor("#FAB44B")) // binding.tvUninstallTip.setTextColor(Color.parseColor("#FAB44B"))
binding.tvGoOrSetting.text = "Setting" // binding.tvGoOrSetting.text = "Setting"
} else { // } else {
binding.tvPinTip.visibility = View.GONE // binding.tvPinTip.visibility = View.GONE
binding.tvGoOrSetting.text = "Got it" // binding.tvGoOrSetting.text = "Got it"
} // }
} // }
//
override fun initListener() { // override fun initListener() {
super.initListener() // super.initListener()
//
binding.tvGoOrSetting.setOnClickListener { // binding.tvGoOrSetting.setOnClickListener {
if (privacyPinPassword.isEmpty()) { // if (privacyPinPassword.isEmpty()) {
startActivity(Intent(this, PrivacyPinOneActivity::class.java)) // startActivity(Intent(this, PrivacyPinOneActivity::class.java))
} else { // } else {
binding.llTip.visibility = View.GONE // binding.llTip.visibility = View.GONE
} // }
} // }
binding.llPhotos.setOnClickListener { // binding.llPhotos.setOnClickListener {
binding.viewpager2.currentItem = 0 // binding.viewpager2.currentItem = 0
} // }
binding.llVideos.setOnClickListener { // binding.llVideos.setOnClickListener {
binding.viewpager2.currentItem = 1 // binding.viewpager2.currentItem = 1
} // }
onBackPressedDispatcher.addCallback { // onBackPressedDispatcher.addCallback {
showExitFunctionDialog(true) { // showExitFunctionDialog(true) {
if (it) { // if (it) {
AdmobMaxHelper.admobMaxShowInterstitialAd(this@PrivacySpaceActivity) { // AdmobMaxHelper.admobMaxShowInterstitialAd(this@PrivacySpaceActivity) {
finishToMain() // finishToMain()
} // }
} else { // } else {
finishToMain() // finishToMain()
} // }
} // }
} // }
binding.flFanhui.setOnClickListener { // binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed() // onBackPressedDispatcher.onBackPressed()
} // }
//
} // }
//
} //}
\ No newline at end of file \ No newline at end of file
...@@ -10,7 +10,8 @@ object ConstObject { ...@@ -10,7 +10,8 @@ object ConstObject {
const val ID_RECOVERY_PHOTOS = 13000 const val ID_RECOVERY_PHOTOS = 13000
const val ID_RECOVERY_VIDEOS = 13001 const val ID_RECOVERY_VIDEOS = 13001
const val ID_RECOVERY_DOCUMENTS = 13002 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_PHOTOS = "Recovery Photos"
const val RECOVERY_VIDEOS = "Recovery Videos" const val RECOVERY_VIDEOS = "Recovery Videos"
......
...@@ -16,12 +16,12 @@ import com.base.filerecoveryrecyclebin.MyApplication ...@@ -16,12 +16,12 @@ import com.base.filerecoveryrecyclebin.MyApplication
import com.base.filerecoveryrecyclebin.R import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.activity.SplashActivity import com.base.filerecoveryrecyclebin.activity.SplashActivity
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_JUNK_CLEAN_PUSH 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_DOCUMENTS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_RECOVERY_PHOTOS 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_RECOVERY_VIDEOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_SCREENSHOT_CLEAN 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_SIMILAR_IMAGE
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_WHATSAPP
import com.base.filerecoveryrecyclebin.utils.AppPreferences import com.base.filerecoveryrecyclebin.utils.AppPreferences
import com.base.filerecoveryrecyclebin.utils.CleanJunkStringResourceManager import com.base.filerecoveryrecyclebin.utils.CleanJunkStringResourceManager
import com.base.filerecoveryrecyclebin.utils.DocumentRecoveryStringManager import com.base.filerecoveryrecyclebin.utils.DocumentRecoveryStringManager
...@@ -31,6 +31,7 @@ import com.base.filerecoveryrecyclebin.utils.PhotoRecoveryStringManager ...@@ -31,6 +31,7 @@ import com.base.filerecoveryrecyclebin.utils.PhotoRecoveryStringManager
import com.base.filerecoveryrecyclebin.utils.PrivacySpaceStringManager import com.base.filerecoveryrecyclebin.utils.PrivacySpaceStringManager
import com.base.filerecoveryrecyclebin.utils.ScreenshotCleanupStringManager import com.base.filerecoveryrecyclebin.utils.ScreenshotCleanupStringManager
import com.base.filerecoveryrecyclebin.utils.VideoRecoveryStringManager import com.base.filerecoveryrecyclebin.utils.VideoRecoveryStringManager
import com.base.filerecoveryrecyclebin.utils.WhatsappCleanerStringManager
import java.util.Random import java.util.Random
/** /**
...@@ -86,10 +87,10 @@ object NotificationUtil { ...@@ -86,10 +87,10 @@ object NotificationUtil {
btn = "Restore Document" btn = "Restore Document"
} }
ID_PRIVACY_SPACE -> { ID_WHATSAPP -> {
icon = R.mipmap.space icon = R.mipmap.h_whatsapp
desc = PrivacySpaceStringManager.getNextPrivacySpaceCopy() desc = WhatsappCleanerStringManager.getNextCleanerCopy()
btn = "Hide Content" btn = "WhatsApp Cleaner"
} }
} }
bigRemoteViews.setImageViewResource(R.id.iv_icon, icon) bigRemoteViews.setImageViewResource(R.id.iv_icon, icon)
...@@ -271,6 +272,6 @@ object NotificationUtil { ...@@ -271,6 +272,6 @@ object NotificationUtil {
ID_RECOVERY_PHOTOS, ID_RECOVERY_PHOTOS,
ID_RECOVERY_VIDEOS, ID_RECOVERY_VIDEOS,
ID_RECOVERY_DOCUMENTS, ID_RECOVERY_DOCUMENTS,
ID_PRIVACY_SPACE, ID_WHATSAPP
) )
} }
\ No newline at end of file
package com.base.filerecoveryrecyclebin.fragment //package com.base.filerecoveryrecyclebin.fragment
//
import android.annotation.SuppressLint //import android.annotation.SuppressLint
import androidx.lifecycle.lifecycleScope //import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacyImportActivity //import com.base.filerecoveryrecyclebin.adapter.MediaAdapter
import com.base.filerecoveryrecyclebin.adapter.MediaAdapter //import com.base.filerecoveryrecyclebin.bean.MediaBean
import com.base.filerecoveryrecyclebin.bean.MediaBean //import com.base.filerecoveryrecyclebin.bean.MediaTimeBean
import com.base.filerecoveryrecyclebin.bean.MediaTimeBean //import com.base.filerecoveryrecyclebin.databinding.FragmentPrivacyFileImportBinding
import com.base.filerecoveryrecyclebin.databinding.FragmentPrivacyFileImportBinding //import com.base.filerecoveryrecyclebin.help.BaseFragment
import com.base.filerecoveryrecyclebin.help.BaseFragment //import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.getImageMedia
import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.getImageMedia //import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.getVideoMedia
import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.getVideoMedia //import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Dispatchers //import kotlinx.coroutines.launch
import kotlinx.coroutines.launch //import java.text.SimpleDateFormat
import java.text.SimpleDateFormat //import java.util.HashMap
import java.util.HashMap //import java.util.Locale
import java.util.Locale //
//class PrivacyFileImportFragment(val type: String) : BaseFragment<FragmentPrivacyFileImportBinding>() {
class PrivacyFileImportFragment(val type: String) : BaseFragment<FragmentPrivacyFileImportBinding>() { //
// override val binding: FragmentPrivacyFileImportBinding by lazy {
override val binding: FragmentPrivacyFileImportBinding by lazy { // FragmentPrivacyFileImportBinding.inflate(layoutInflater)
FragmentPrivacyFileImportBinding.inflate(layoutInflater) // }
} // private lateinit var adapter: MediaAdapter
private lateinit var adapter: MediaAdapter //
// override fun setView() {
override fun setView() { // adapter = MediaAdapter { pair ->
adapter = MediaAdapter { pair -> // binding.tvSelectAll.text = if (pair.first) "Unselect ALL" else "Select All"
binding.tvSelectAll.text = if (pair.first) "Unselect ALL" else "Select All" // (requireActivity() as PrivacyImportActivity).showCardImport(type,pair.second)
(requireActivity() as PrivacyImportActivity).showCardImport(type,pair.second) // }
} // binding.rv.adapter = adapter
binding.rv.adapter = adapter //
// initData()
initData() // }
} //
// @SuppressLint("SetTextI18n")
@SuppressLint("SetTextI18n") // override fun setListener() {
override fun setListener() { // binding.tvSelectAll.setOnClickListener {
binding.tvSelectAll.setOnClickListener { // val text = binding.tvSelectAll.text
val text = binding.tvSelectAll.text // if (text == "Unselect ALL") {
if (text == "Unselect ALL") { // adapter.toggleAllSelect(false)
adapter.toggleAllSelect(false) // } else {
} else { // adapter.toggleAllSelect(true)
adapter.toggleAllSelect(true) // }
} // }
} // }
} //
// private fun initData() = lifecycleScope.launch(Dispatchers.IO) {
private fun initData() = lifecycleScope.launch(Dispatchers.IO) { // val list = arrayListOf<MediaBean>()
val list = arrayListOf<MediaBean>() // if (type == "Photos") {
if (type == "Photos") { // requireContext().getImageMedia(list)
requireContext().getImageMedia(list) // } else {
} else { // requireContext().getVideoMedia(list)
requireContext().getVideoMedia(list) // }
} //
// val hashMap = HashMap<String, ArrayList<MediaBean>>()
val hashMap = HashMap<String, ArrayList<MediaBean>>() // list.forEach {
list.forEach { // val time = SimpleDateFormat("yyyy-MMM-dd", Locale.getDefault()).format(it.time)
val time = SimpleDateFormat("yyyy-MMM-dd", Locale.getDefault()).format(it.time) // if (hashMap[time].isNullOrEmpty()) {
if (hashMap[time].isNullOrEmpty()) { // hashMap[time] = arrayListOf()
hashMap[time] = arrayListOf() // }
} // hashMap[time]?.add(it)
hashMap[time]?.add(it) // }
} //
// val beanList = hashMap.map {
val beanList = hashMap.map { // MediaTimeBean(it.key, it.value)
MediaTimeBean(it.key, it.value) // }
} //
// launch(Dispatchers.Main) {
launch(Dispatchers.Main) { // adapter.setData(beanList)
adapter.setData(beanList) // }
} //
// }
} //
//
//}
} \ No newline at end of file
\ No newline at end of file
package com.base.filerecoveryrecyclebin.fragment //package com.base.filerecoveryrecyclebin.fragment
//
import android.content.Intent //import android.content.Intent
import android.view.View //import android.view.View
import android.widget.Toast //import android.widget.Toast
import androidx.lifecycle.lifecycleScope //import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacyImportActivity //import com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacyImportActivity
import com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacyManageActivity //import com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacyManageActivity
import com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacySpaceActivity //import com.base.filerecoveryrecyclebin.activity.privacyspace.PrivacySpaceActivity
import com.base.filerecoveryrecyclebin.adapter.FileGridAdapter //import com.base.filerecoveryrecyclebin.adapter.FileGridAdapter
import com.base.filerecoveryrecyclebin.databinding.FragmentPrivacyPageBinding //import com.base.filerecoveryrecyclebin.databinding.FragmentPrivacyPageBinding
import com.base.filerecoveryrecyclebin.help.BaseFragment //import com.base.filerecoveryrecyclebin.help.BaseFragment
import com.base.filerecoveryrecyclebin.help.FileHelp.loadFileByFilter //import com.base.filerecoveryrecyclebin.help.FileHelp.loadFileByFilter
import com.base.filerecoveryrecyclebin.help.PermissionHelp.checkStorePermission //import com.base.filerecoveryrecyclebin.help.PermissionHelp.checkStorePermission
import com.base.filerecoveryrecyclebin.help.PermissionHelp.requestStorePermission //import com.base.filerecoveryrecyclebin.help.PermissionHelp.requestStorePermission
import com.base.filerecoveryrecyclebin.utils.LogEx //import com.base.filerecoveryrecyclebin.utils.LogEx
import com.base.filerecoveryrecyclebin.view.DialogViews.showCameraSettingDialog //import com.base.filerecoveryrecyclebin.view.DialogViews.showCameraSettingDialog
import com.base.filerecoveryrecyclebin.view.DialogViews.showGerPermission //import com.base.filerecoveryrecyclebin.view.DialogViews.showGerPermission
import com.base.filerecoveryrecyclebin.view.DialogViews.showImageImportDialog //import com.base.filerecoveryrecyclebin.view.DialogViews.showImageImportDialog
import kotlinx.coroutines.Dispatchers //import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch //import kotlinx.coroutines.launch
import java.io.File //import java.io.File
import kotlin.random.Random //import kotlin.random.Random
//
class PrivacyPageFragment( //class PrivacyPageFragment(
val mediaType: String // val mediaType: String
) : BaseFragment<FragmentPrivacyPageBinding>() { //) : BaseFragment<FragmentPrivacyPageBinding>() {
//
private val TAG = "PrivacyPageFragment" // private val TAG = "PrivacyPageFragment"
//
override val binding: FragmentPrivacyPageBinding by lazy { // override val binding: FragmentPrivacyPageBinding by lazy {
FragmentPrivacyPageBinding.inflate(layoutInflater) // FragmentPrivacyPageBinding.inflate(layoutInflater)
} // }
//
private lateinit var adapter: FileGridAdapter // private lateinit var adapter: FileGridAdapter
//
override fun setView() { // override fun setView() {
adapter = FileGridAdapter() // adapter = FileGridAdapter()
binding.rv.adapter = adapter // binding.rv.adapter = adapter
//
if (requireContext().checkStorePermission()) { // if (requireContext().checkStorePermission()) {
initData() // initData()
} else { // } else {
val activity = (requireActivity() as PrivacySpaceActivity) // val activity = (requireActivity() as PrivacySpaceActivity)
//
requireContext().showGerPermission("Privacy Space Access", // requireContext().showGerPermission("Privacy Space Access",
"To help you protect your privacy, our app needs to scan your device for photos and videos. We will use this information to create a secure private space that only you can access. We do not collect any personal information or data. Please click \"Agree\" to grant us permission to scan your device or \"Cancel\" to exit.", // "To help you protect your privacy, our app needs to scan your device for photos and videos. We will use this information to create a secure private space that only you can access. We do not collect any personal information or data. Please click \"Agree\" to grant us permission to scan your device or \"Cancel\" to exit.",
denyText = "Exit", // denyText = "Exit",
allowText = "Agree", // allowText = "Agree",
deny = { // deny = {
activity.finishToMain() // activity.finishToMain()
}, // },
allow = { // allow = {
requireContext().requestStorePermission(activity.launcher, result = { // requireContext().requestStorePermission(activity.launcher, result = {
if (it) { // if (it) {
initData() // initData()
} else { // } else {
activity.finishToMain() // activity.finishToMain()
} // }
}) // })
}) // })
//
} // }
} // }
//
override fun setListener() { // override fun setListener() {
arrayOf(binding.ivAdd, binding.ivAddEmpty).forEach { // arrayOf(binding.ivAdd, binding.ivAddEmpty).forEach {
it.setOnClickListener { // it.setOnClickListener {
requireContext().showImageImportDialog(import = { // requireContext().showImageImportDialog(import = {
val launcher = (requireActivity() as PrivacySpaceActivity).launcher // val launcher = (requireActivity() as PrivacySpaceActivity).launcher
launcher.launch( // launcher.launch(
Intent(requireContext(), PrivacyImportActivity::class.java) // Intent(requireContext(), PrivacyImportActivity::class.java)
) { activityResult -> // ) { activityResult ->
val result = activityResult.data?.extras?.getString("Result") // val result = activityResult.data?.extras?.getString("Result")
Toast.makeText(requireContext(), result, Toast.LENGTH_SHORT).show() // Toast.makeText(requireContext(), result, Toast.LENGTH_SHORT).show()
initData() // initData()
} // }
}, camera = { // }, camera = {
requireContext().showCameraSettingDialog() // requireContext().showCameraSettingDialog()
}) // })
} // }
} // }
binding.swipeRefreshLayout.setOnRefreshListener { // binding.swipeRefreshLayout.setOnRefreshListener {
binding.swipeRefreshLayout.isRefreshing = true // binding.swipeRefreshLayout.isRefreshing = true
initData { // initData {
binding.root.postDelayed({ // binding.root.postDelayed({
binding.swipeRefreshLayout.isRefreshing = false // binding.swipeRefreshLayout.isRefreshing = false
}, Random.nextLong(1500)) // }, Random.nextLong(1500))
} // }
} // }
binding.tvManager.setOnClickListener { // binding.tvManager.setOnClickListener {
startActivity(Intent(requireContext(), PrivacyManageActivity::class.java).apply { // startActivity(Intent(requireContext(), PrivacyManageActivity::class.java).apply {
putExtra("mediaType", mediaType) // putExtra("mediaType", mediaType)
}) // })
} // }
//
} // }
//
//
private fun initData(callback: (() -> Unit)? = null) { // private fun initData(callback: (() -> Unit)? = null) {
val dir = if (mediaType == "Photos") { // val dir = if (mediaType == "Photos") {
File(requireContext().filesDir, "photos") // File(requireContext().filesDir, "photos")
} else { // } else {
File(requireContext().filesDir, "videos") // File(requireContext().filesDir, "videos")
} // }
if (!dir.exists()) { // if (!dir.exists()) {
dir.mkdirs() // dir.mkdirs()
} // }
val list = arrayListOf<String>() // val list = arrayListOf<String>()
//
lifecycleScope.loadFileByFilter(folder = dir, // lifecycleScope.loadFileByFilter(folder = dir,
filter = { true }, // filter = { true },
onDo = { // onDo = {
LogEx.logDebug(TAG, "$it") // LogEx.logDebug(TAG, "$it")
list.add(it.absolutePath) // list.add(it.absolutePath)
}, // },
onFinish = { // onFinish = {
lifecycleScope.launch(Dispatchers.Main) { // lifecycleScope.launch(Dispatchers.Main) {
if (list.isNotEmpty()) { // if (list.isNotEmpty()) {
binding.llEmpty.visibility = View.GONE // binding.llEmpty.visibility = View.GONE
binding.rv.visibility = View.VISIBLE // binding.rv.visibility = View.VISIBLE
binding.ivAdd.visibility = View.VISIBLE // binding.ivAdd.visibility = View.VISIBLE
binding.tvManager.visibility = View.VISIBLE // binding.tvManager.visibility = View.VISIBLE
} // }
adapter.setData(list) // adapter.setData(list)
callback?.invoke() // callback?.invoke()
} // }
}) // })
} // }
} //}
\ No newline at end of file \ 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