Commit 328eac6a authored by wanglei's avatar wanglei

提交ui

parent b6a1bb34
......@@ -141,7 +141,7 @@
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.RepeaterdPhotoActivity"
android:name=".activity.PreparedPhotoActivity"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
......
......@@ -57,7 +57,6 @@ import java.util.concurrent.LinkedBlockingDeque
*/
class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
override val isLightMode = true
private lateinit var launcher: ActivityLauncher
private val dataList = ArrayList<AppBean>()
private val pages = arrayListOf<Fragment>()
private lateinit var pagerAdapter: ScreenSlidePagerAdapter
......
package com.test.basd.fastcleanerjunk.activity
import android.annotation.SuppressLint
import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.net.Uri
import android.os.Build
import android.os.Environment
import android.provider.Settings
import android.text.format.Formatter
import android.view.View
import android.view.ViewGroup
......@@ -43,8 +46,11 @@ import com.test.basd.fastcleanerjunk.databinding.PopupwindowFileFilterBinding
import com.test.basd.fastcleanerjunk.helps.BaseActivity
import com.test.basd.fastcleanerjunk.helps.FileHelps
import com.test.basd.fastcleanerjunk.helps.LogEx
import com.test.basd.fastcleanerjunk.helps.PermissionHelp.checkStorePermission
import com.test.basd.fastcleanerjunk.helps.PermissionHelp.requestStorePermission
import com.test.basd.fastcleanerjunk.helps.TimeUtils
import com.test.basd.fastcleanerjunk.helps.ads.AdmobUtils
import com.test.basd.fastcleanerjunk.view.DialogViews
import com.test.basd.fastcleanerjunk.view.FileDeleteDialog.showFileDeleteDialog
import com.test.basd.fastcleanerjunk.view.FileDetailDialog.showFileDetailDialog
import com.test.basd.fastcleanerjunk.view.XmlEx.inflate
......@@ -165,29 +171,31 @@ class LargeFileCleanActivity : BaseActivity<ActivityLayoutLargeFileBinding>() {
binding.tvSize.text = filterSize
binding.tvTime.text = filterTime
val flag = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
Environment.isExternalStorageManager()
} else {
PermissionUtils.isGranted(PermissionConstants.STORAGE)
}
if (flag) {
isplay += 1
if (checkStorePermission()) {
playLottie()
}
checkPermission()
}
var isplay = 0
override fun onPermissionsResult(isGranted: Boolean) {
super.onPermissionsResult(isGranted)
if (isGranted) {
isplay += 1
if (isplay == 1) {
playLottie()
}
initList()
} else {
finishToMain()
DialogViews.showGerPermission(this, {
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.addCategory("android.intent.category.DEFAULT")
intent.data = Uri.parse("package:${packageName}")
if (intent.resolveActivity(packageManager) != null) {
requestStorePermission(launcher, jumpAction = {}, result = { flag ->
if (flag) {
playLottie()
initList()
} else {
finishToMain()
}
})
PermissionTripActivity.launch(this)
} else {
finishToMain()
}
}, {
finishToMain()
})
}
}
......
......@@ -3,13 +3,18 @@ package com.test.basd.fastcleanerjunk.activity
import android.animation.ValueAnimator
import android.content.Intent
import android.graphics.Color
import android.net.Uri
import android.provider.Settings
import android.view.animation.LinearInterpolator
import androidx.activity.OnBackPressedCallback
import androidx.core.view.updatePadding
import com.blankj.utilcode.util.BarUtils
import com.test.basd.fastcleanerjunk.databinding.ActivityLayoutParepreScanBinding
import com.test.basd.fastcleanerjunk.helps.BaseActivity
import com.test.basd.fastcleanerjunk.helps.PermissionHelp.checkStorePermission
import com.test.basd.fastcleanerjunk.helps.PermissionHelp.requestStorePermission
import com.test.basd.fastcleanerjunk.helps.ads.AdmobUtils
import com.test.basd.fastcleanerjunk.view.DialogViews
/**
* 引导清理扫描页
......@@ -32,26 +37,29 @@ class PrepareScanActivity : BaseActivity<ActivityLayoutParepreScanBinding>() {
finishToMain()
}
})
}
override fun onStart() {
super.onStart()
checkPermission()
}
var isplay = 0
override fun onPermissionsResult(isGranted: Boolean) {
// Log.e("MXL", "权限回调: " + isGranted)
if (isGranted) {
isplay += 1
if (isplay == 1) {
playLottie()
}
if (checkStorePermission()) {
playLottie()
} else {
finishToMain()
DialogViews.showGerPermission(this, {
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.addCategory("android.intent.category.DEFAULT")
intent.data = Uri.parse("package:${packageName}")
if (intent.resolveActivity(packageManager) != null) {
requestStorePermission(launcher, jumpAction = {}, result = { flag ->
if (flag) {
playLottie()
} else {
finishToMain()
}
})
PermissionTripActivity.launch(this)
} else {
finishToMain()
}
}, {
finishToMain()
})
}
}
......
package com.test.basd.fastcleanerjunk.activity
import android.annotation.SuppressLint
import android.content.Intent
import android.graphics.Color
import android.net.Uri
import android.provider.Settings
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
......@@ -20,9 +24,13 @@ import com.test.basd.fastcleanerjunk.databinding.ActivityLayoutRepeaterdPhotoBin
import com.test.basd.fastcleanerjunk.helps.BaseActivity
import com.test.basd.fastcleanerjunk.helps.BaseApplication
import com.test.basd.fastcleanerjunk.helps.FileHelps
import com.test.basd.fastcleanerjunk.helps.PermissionHelp.checkStorePermission
import com.test.basd.fastcleanerjunk.helps.PermissionHelp.requestStorePermission
import com.test.basd.fastcleanerjunk.helps.ads.AdmobUtils
import com.test.basd.fastcleanerjunk.view.DialogViews
class PreparedPhotoActivity : BaseActivity<ActivityLayoutRepeaterdPhotoBinding>() {
class RepeaterdPhotoActivity: BaseActivity<ActivityLayoutRepeaterdPhotoBinding>() {
private var isSelectAll = false
override val binding: ActivityLayoutRepeaterdPhotoBinding by lazy {
......@@ -34,16 +42,40 @@ class RepeaterdPhotoActivity: BaseActivity<ActivityLayoutRepeaterdPhotoBinding>(
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.idTvDelete.isEnabled = false
initListener()
if (checkStorePermission()) {
initData()
} else {
DialogViews.showGerPermission(this, {
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.addCategory("android.intent.category.DEFAULT")
intent.data = Uri.parse("package:${packageName}")
if (intent.resolveActivity(packageManager) != null) {
requestStorePermission(launcher, jumpAction = {}, result = { flag ->
if (flag) {
initData()
} else {
finishToMain()
}
})
PermissionTripActivity.launch(this)
} else {
finishToMain()
}
}, {
finishToMain()
})
}
}
override fun initListener(){
override fun initListener() {
binding.idBack.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
AdmobUtils.showInterstitialAd(this@RepeaterdPhotoActivity){
AdmobUtils.showInterstitialAd(this@PreparedPhotoActivity) {
finishToMain()
}
......@@ -65,7 +97,7 @@ class RepeaterdPhotoActivity: BaseActivity<ActivityLayoutRepeaterdPhotoBinding>(
setTvStatus()
}
binding.idTvDelete.setOnClickListener {
AdmobUtils.showInterstitialAd(this){
AdmobUtils.showInterstitialAd(this) {
val list = fileList.toList().filter { it.isSelect }
if (list.isNotEmpty() && list.all { FileUtils.delete(it.path) }) {
fileList.removeAll(list)
......@@ -80,34 +112,34 @@ class RepeaterdPhotoActivity: BaseActivity<ActivityLayoutRepeaterdPhotoBinding>(
}
}
private var fileList = mutableListOf<ImageDataBean>()
override fun onStart() {
super.onStart()
checkPermission()
}
override fun onPermissionsResult(isGranted: Boolean) {
if(isGranted){
FileHelps.getImageFiles {
AdmobUtils.showInterstitialAd(this)
binding.idLlScaning.isVisible = false
binding.idLlResult.isVisible = true
fileList = FileHelps.similarImageList
binding.idTvNoData.isVisible = fileList.size == 0
binding.idTvDelete.isVisible = fileList.size > 0
binding.idTvAll.isVisible = fileList.size > 0
binding.idImgSelect.isVisible = fileList.size > 0
binding.idRlList.layoutManager = GridLayoutManager(this, 3)
binding.idRlList.adapter = mAdapter
}
}else{
finishToMain()
private fun initData() {
FileHelps.getImageFiles {
AdmobUtils.showInterstitialAd(this)
binding.idLlScaning.isVisible = false
binding.idLlResult.isVisible = true
fileList = FileHelps.similarImageList
binding.idTvNoData.isVisible = fileList.size == 0
binding.idTvDelete.isVisible = fileList.size > 0
binding.idTvAll.isVisible = fileList.size > 0
binding.idImgSelect.isVisible = fileList.size > 0
binding.idRlList.layoutManager = GridLayoutManager(this, 3)
binding.idRlList.adapter = mAdapter
}
}
private fun setTvStatus() {
val it = fileList.filter { it.isSelect }
binding.idTvDelete.isEnabled = it.isNotEmpty()
}
private val mAdapter by lazy {
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val ivImage: ImageView
......@@ -121,7 +153,7 @@ class RepeaterdPhotoActivity: BaseActivity<ActivityLayoutRepeaterdPhotoBinding>(
object : RecyclerView.Adapter<ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(this@RepeaterdPhotoActivity).inflate(
val view = LayoutInflater.from(this@PreparedPhotoActivity).inflate(
R.layout.item_layout_repeater_photo, parent, false
)
return ViewHolder(view)
......@@ -129,6 +161,7 @@ class RepeaterdPhotoActivity: BaseActivity<ActivityLayoutRepeaterdPhotoBinding>(
override fun getItemCount() = fileList.size
@SuppressLint("SetTextI18n")
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = fileList[position]
Glide.with(BaseApplication.context).load(item.path).into(holder.ivImage)
......
......@@ -48,7 +48,6 @@ class RecentAppActivity : BaseActivity<ActivityRecentAppBinding>() {
private lateinit var tabs: Array<String>
private var dataList = ArrayList<AppBean>()
private lateinit var context: Context
private lateinit var launcher: ActivityLauncher
override val binding: ActivityRecentAppBinding by lazy {
ActivityRecentAppBinding.inflate(layoutInflater)
......
......@@ -66,7 +66,7 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
}
SIMILAR_PHOTOS -> {
startActivity(Intent(this, RepeaterdPhotoActivity::class.java))
startActivity(Intent(this, PreparedPhotoActivity::class.java))
}
PHOTO_COMPRESS -> {
......
......@@ -2,11 +2,16 @@ package com.test.basd.fastcleanerjunk.activity
import android.animation.ValueAnimator
import android.content.Intent
import android.net.Uri
import android.provider.Settings
import android.view.animation.LinearInterpolator
import androidx.activity.OnBackPressedCallback
import com.test.basd.fastcleanerjunk.databinding.ActivityLayoutScanJunkBinding
import com.test.basd.fastcleanerjunk.helps.BaseActivity
import com.test.basd.fastcleanerjunk.helps.PermissionHelp.checkStorePermission
import com.test.basd.fastcleanerjunk.helps.PermissionHelp.requestStorePermission
import com.test.basd.fastcleanerjunk.helps.ads.AdmobUtils
import com.test.basd.fastcleanerjunk.view.DialogViews
class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() {
override val isLightMode = true
......@@ -26,22 +31,30 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() {
}
})
}
override fun onStart() {
super.onStart()
checkPermission()
}
if (checkStorePermission()){
playLottie()
}else{
DialogViews.showGerPermission(this, {
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.addCategory("android.intent.category.DEFAULT")
intent.data = Uri.parse("package:${packageName}")
var isplay = 0
override fun onPermissionsResult(isGranted: Boolean) {
if (isGranted) {
isplay += 1
if (isplay == 1) {
playLottie()
}
} else {
finishToMain()
if (intent.resolveActivity(packageManager) != null) {
requestStorePermission(launcher, jumpAction = {}, result = { flag ->
if (flag) {
playLottie()
} else {
finishToMain()
}
})
PermissionTripActivity.launch(this)
} else {
finishToMain()
}
}, {
finishToMain()
})
}
}
......
......@@ -2,6 +2,7 @@ package com.test.basd.fastcleanerjunk.activity
import android.annotation.SuppressLint
import android.os.Environment
import androidx.lifecycle.lifecycleScope
import com.ironsource.mediationsdk.f
import com.test.basd.fastcleanerjunk.adapter.ScreenShotAdapter
import com.test.basd.fastcleanerjunk.bean.ScreenPhotoBean
......@@ -9,6 +10,11 @@ import com.test.basd.fastcleanerjunk.bean.ScreenshotBean
import com.test.basd.fastcleanerjunk.databinding.ActivityScreenShotBinding
import com.test.basd.fastcleanerjunk.helps.BaseActivity
import com.test.basd.fastcleanerjunk.helps.KotlinExt.toFormatSize
import com.test.basd.fastcleanerjunk.view.FileDeleteDialog.showFileDeleteDialog
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async
import kotlinx.coroutines.launch
import okhttp3.internal.wait
import java.io.File
import java.text.SimpleDateFormat
import java.util.Locale
......@@ -62,6 +68,22 @@ class ScreenShotActivity : BaseActivity<ActivityScreenShotBinding>() {
val size = screenShotAdapter.getSelectDataSize()
setCleanUpUi(size)
}
binding.tvClean.setOnClickListener {
val files = screenShotAdapter.getSelectData()
showFileDeleteDialog {
lifecycleScope.launch(Dispatchers.Main) {
async {
files.forEach { file ->
runCatching {
if (file.exists()) file.delete()
}
}
}.wait()
}
screenShotAdapter.removeData(files)
}
}
}
private fun getScreenshotBean(): ArrayList<ScreenshotBean> {
......
......@@ -9,7 +9,7 @@ import com.test.basd.fastcleanerjunk.activity.LargeFileCleanActivity
import com.test.basd.fastcleanerjunk.activity.MainActivity
import com.test.basd.fastcleanerjunk.activity.NetWorkActivity
import com.test.basd.fastcleanerjunk.activity.RecentAppActivity
import com.test.basd.fastcleanerjunk.activity.RepeaterdPhotoActivity
import com.test.basd.fastcleanerjunk.activity.PreparedPhotoActivity
import com.test.basd.fastcleanerjunk.activity.ScanJunkActivity
import com.test.basd.fastcleanerjunk.activity.photocompress.photo.StartCompressionPhotoActivity
import com.test.basd.fastcleanerjunk.bean.ConfigBean.Companion.ID_APP_MANAGER
......@@ -73,7 +73,7 @@ object SplashJumpUtils {
}
ID_SIMILAR_IMAGE -> {
context.startActivity(Intent(context, RepeaterdPhotoActivity::class.java))
context.startActivity(Intent(context, PreparedPhotoActivity::class.java))
}
//================================被动广播=========================================
......
......@@ -12,6 +12,7 @@ import com.test.basd.fastcleanerjunk.bean.ScreenshotBean
import com.test.basd.fastcleanerjunk.databinding.ItemScreenPhotoBinding
import com.test.basd.fastcleanerjunk.databinding.ItemScreenshotBinding
import com.test.basd.fastcleanerjunk.view.XmlEx.inflate
import java.io.File
import java.text.SimpleDateFormat
import java.util.ArrayList
import java.util.Locale
......@@ -84,4 +85,14 @@ class ScreenShotAdapter(
fun getSelectDataSize(): Int {
return beans.sumOf { bean -> bean.screenPhotoBean.filter { it.isSelect }.size }
}
fun getSelectData(): List<File> {
return beans.flatMap { bean -> bean.screenPhotoBean.filter { it.isSelect }.map { s -> s.file } }
}
fun removeData(files: List<File>) {
beans.forEach {
}
}
}
\ No newline at end of file
......@@ -6,7 +6,7 @@ import com.test.basd.fastcleanerjunk.activity.BatteryInfoActivity
import com.test.basd.fastcleanerjunk.activity.LargeFileCleanActivity
import com.test.basd.fastcleanerjunk.activity.NetWorkActivity
import com.test.basd.fastcleanerjunk.activity.RecentAppActivity
import com.test.basd.fastcleanerjunk.activity.RepeaterdPhotoActivity
import com.test.basd.fastcleanerjunk.activity.PreparedPhotoActivity
import com.test.basd.fastcleanerjunk.activity.ScanJunkActivity
import com.test.basd.fastcleanerjunk.activity.ScreenShotActivity
import com.test.basd.fastcleanerjunk.activity.photocompress.photo.StartCompressionPhotoActivity
......@@ -61,7 +61,7 @@ class ToolsFragment : BaseFragment<FragmentLayoutToolsBinding>() {
}
SIMILAR_PHOTOS -> {
startActivity(Intent(requireContext(), RepeaterdPhotoActivity::class.java))
startActivity(Intent(requireContext(), PreparedPhotoActivity::class.java))
}
......
......@@ -27,7 +27,10 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
protected open val isLightMode: Boolean? = null
lateinit var launcher: ActivityLauncher
override fun onCreate(savedInstanceState: Bundle?) {
launcher = ActivityLauncher(this)
super.onCreate(savedInstanceState)
setContentView(binding.root)
isLightMode?.let {
......
package com.test.basd.fastcleanerjunk.helps
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Environment
import android.provider.Settings
import com.blankj.utilcode.constant.PermissionConstants
import com.blankj.utilcode.util.PermissionUtils
object PermissionHelp {
fun checkStorePermission(): Boolean {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
Environment.isExternalStorageManager()
} else {
PermissionUtils.isGranted(PermissionConstants.STORAGE)
}
}
fun Context.requestStorePermission(
launcher: ActivityLauncher,
jumpAction: (() -> Unit)? = null,
result: (flag: Boolean) -> Unit
) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val intent =
Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.addCategory("android.intent.category.DEFAULT")
intent.data = Uri.parse("package:${packageName}")
jumpAction?.invoke()
launcher.launch(intent) {
result.invoke(checkStorePermission())
}
} else {
PermissionUtils.permissionGroup(PermissionConstants.STORAGE).callback { isAllGranted, _, _, _ ->
result.invoke(isAllGranted)
}
}
}
}
\ No newline at end of file
......@@ -208,7 +208,6 @@
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/ll_lottie"
android:layout_width="match_parent"
......
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