Commit 49076366 authored by wanglei's avatar wanglei

...

parent 86371d0f
...@@ -95,7 +95,7 @@ dependencies { ...@@ -95,7 +95,7 @@ dependencies {
//max //max
implementation 'com.applovin:applovin-sdk:+' implementation 'com.applovin:applovin-sdk:+'
implementation 'com.applovin.mediation:google-ad-manager-adapter:+' implementation 'com.applovin.mediation:google-adapter:+'
implementation 'com.applovin.mediation:facebook-adapter:+' implementation 'com.applovin.mediation:facebook-adapter:+'
implementation 'com.applovin.mediation:mintegral-adapter:+' implementation 'com.applovin.mediation:mintegral-adapter:+'
implementation 'com.applovin.mediation:bytedance-adapter:+' implementation 'com.applovin.mediation:bytedance-adapter:+'
......
...@@ -3,6 +3,7 @@ package com.base.filerecoveryrecyclebin.activity ...@@ -3,6 +3,7 @@ package com.base.filerecoveryrecyclebin.activity
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.graphics.Typeface import android.graphics.Typeface
import android.os.Environment
import androidx.activity.addCallback import androidx.activity.addCallback
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
...@@ -10,19 +11,24 @@ import androidx.lifecycle.lifecycleScope ...@@ -10,19 +11,24 @@ 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.ads.admob.AdmobBannerUtils import com.base.filerecoveryrecyclebin.ads.admob.AdmobBannerUtils
import com.base.filerecoveryrecyclebin.bean.MediaBean
import com.base.filerecoveryrecyclebin.databinding.ActivityMainBinding import com.base.filerecoveryrecyclebin.databinding.ActivityMainBinding
import com.base.filerecoveryrecyclebin.fragment.HomeFragment import com.base.filerecoveryrecyclebin.fragment.HomeFragment
import com.base.filerecoveryrecyclebin.fragment.RecycleBinFragment import com.base.filerecoveryrecyclebin.fragment.RecycleBinFragment
import com.base.filerecoveryrecyclebin.help.BaseActivity import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.FileHelp
import com.base.filerecoveryrecyclebin.help.MediaStoreHelp.getImageMedia
import com.base.filerecoveryrecyclebin.help.PermissionHelp.checkStorePermission import com.base.filerecoveryrecyclebin.help.PermissionHelp.checkStorePermission
import com.base.filerecoveryrecyclebin.service.StayNotificationService import com.base.filerecoveryrecyclebin.service.StayNotificationService
import com.base.filerecoveryrecyclebin.utils.BarUtils import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.utils.FileHexEx
import com.base.filerecoveryrecyclebin.view.DialogViews.showExitDialog import com.base.filerecoveryrecyclebin.view.DialogViews.showExitDialog
import com.base.filerecoveryrecyclebin.view.PermissionDialog.showPermissionBottomSheet import com.base.filerecoveryrecyclebin.view.PermissionDialog.showPermissionBottomSheet
import com.base.filerecoveryrecyclebin.view.RateStarPop.showRateStarPopDialog import com.base.filerecoveryrecyclebin.view.RateStarPop.showRateStarPopDialog
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import java.io.File
class MainActivity : BaseActivity<ActivityMainBinding>() { class MainActivity : BaseActivity<ActivityMainBinding>() {
private val TAG = "MainActivity" private val TAG = "MainActivity"
...@@ -115,7 +121,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -115,7 +121,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
} }
} }
} }
fun setPage(p:Int){
fun setPage(p: Int) {
binding.viewpager2.currentItem = p binding.viewpager2.currentItem = p
} }
...@@ -126,11 +133,31 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -126,11 +133,31 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
} }
} }
var photoSizeAction: ((size: Long) -> Unit)? = null
fun initPhotoSize() = lifecycleScope.launch(Dispatchers.IO) {
val dcimSize =
FileHelp.getDirFiles(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM))
.filter { FileHexEx.isImage(it) }
.sumOf { it.length() }
val list = arrayListOf<MediaBean>()
getImageMedia(list)
val photoSize = list.map { File(it.path) }.sumOf { it.length() }
launch(Dispatchers.Main) {
val size = dcimSize + photoSize
photoSizeAction?.invoke(size)
}
}
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
if (checkStorePermission()) { if (checkStorePermission()) {
initStayServiceObserver() initStayServiceObserver()
initPhotoSize()
} }
lifecycleScope.launch(Dispatchers.Main) { lifecycleScope.launch(Dispatchers.Main) {
......
...@@ -39,7 +39,8 @@ class PhotoManagerActivity : BaseActivity<ActivityPhotoManagerBinding>() { ...@@ -39,7 +39,8 @@ class PhotoManagerActivity : BaseActivity<ActivityPhotoManagerBinding>() {
initDataSize() initDataSize()
} else { } else {
showGerPermission(null, deny = { finishToMain() }, allow = { showGerPermission("This feature requires access to your storage to scan your files and clean up screenshots. We will not transmit your data to any third-party service. Please grant permission so that we can provide you with better service.",
deny = { finishToMain() }, allow = {
requestStorePermission(launcher) { requestStorePermission(launcher) {
if (it) { if (it) {
initDataSize() initDataSize()
......
package com.base.filerecoveryrecyclebin.fragment package com.base.filerecoveryrecyclebin.fragment
import android.animation.ValueAnimator import android.animation.ValueAnimator
import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.view.View
import com.base.filerecoveryrecyclebin.activity.MainActivity
import com.base.filerecoveryrecyclebin.activity.SettingActivity import com.base.filerecoveryrecyclebin.activity.SettingActivity
import com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity import com.base.filerecoveryrecyclebin.activity.junkclean.ScanJunkActivity
import com.base.filerecoveryrecyclebin.activity.photomanager.PhotoManagerActivity import com.base.filerecoveryrecyclebin.activity.photomanager.PhotoManagerActivity
...@@ -15,6 +18,7 @@ import com.base.filerecoveryrecyclebin.bean.ConstObject.SCAN_PHOTOS ...@@ -15,6 +18,7 @@ import com.base.filerecoveryrecyclebin.bean.ConstObject.SCAN_PHOTOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.SCAN_VIDEOS import com.base.filerecoveryrecyclebin.bean.ConstObject.SCAN_VIDEOS
import com.base.filerecoveryrecyclebin.databinding.FragmentHome3Binding import com.base.filerecoveryrecyclebin.databinding.FragmentHome3Binding
import com.base.filerecoveryrecyclebin.help.BaseFragment import com.base.filerecoveryrecyclebin.help.BaseFragment
import com.base.filerecoveryrecyclebin.help.KotlinExt.toFormatSize
class HomeFragment : BaseFragment<FragmentHome3Binding>() { class HomeFragment : BaseFragment<FragmentHome3Binding>() {
...@@ -22,6 +26,7 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>() { ...@@ -22,6 +26,7 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>() {
FragmentHome3Binding.inflate(layoutInflater) FragmentHome3Binding.inflate(layoutInflater)
} }
@SuppressLint("SetTextI18n")
override fun setView() { override fun setView() {
binding.tvTitle.text = "Dumpster" binding.tvTitle.text = "Dumpster"
binding.lottie.repeatCount = ValueAnimator.INFINITE binding.lottie.repeatCount = ValueAnimator.INFINITE
...@@ -65,6 +70,14 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>() { ...@@ -65,6 +70,14 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>() {
binding.ivVip.setOnClickListener { binding.ivVip.setOnClickListener {
startActivity(Intent(requireContext(), VipActivity::class.java)) startActivity(Intent(requireContext(), VipActivity::class.java))
} }
(requireActivity() as MainActivity).photoSizeAction = {
if (it == 0L) {
binding.tvPhotoSize.visibility = View.INVISIBLE
binding.tvPhotoSize.text = it.toFormatSize(0)
} else {
binding.tvPhotoSize.visibility = View.GONE
}
}
} }
......
...@@ -20,8 +20,8 @@ object ConfigHelper { ...@@ -20,8 +20,8 @@ object ConfigHelper {
const val bannerAdmobId = "ca-app-pub-3940256099942544/9214589741" const val bannerAdmobId = "ca-app-pub-3940256099942544/9214589741"
const val interAdMaxId = "b31e7f6d11ee659e" const val interAdMaxId = "b31e7f6d11ee659e"
const val nativeAdMaxId = "96e8fe78b0efc5d1" const val nativeAdMaxId = "d1d943cdd3127c90"
const val openAdMaxId = "YOUR_AD_UNIT_ID" const val openAdMaxId = "96e8fe78b0efc5d1"
const val bannerMaxId = "ca-app-pub-3940256099942544/9214589741" const val bannerMaxId = "ca-app-pub-3940256099942544/9214589741"
//一定展示大图广告 //一定展示大图广告
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#EB423B" />
<corners android:radius="2.5dp" />
</shape>
\ No newline at end of file
...@@ -434,6 +434,10 @@ ...@@ -434,6 +434,10 @@
app:cardCornerRadius="10dp" app:cardCornerRadius="10dp"
app:cardElevation="0dp"> app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -444,6 +448,20 @@ ...@@ -444,6 +448,20 @@
android:textSize="16sp" android:textSize="16sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_photo_size"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="2dp"
android:layout_marginTop="20dp"
android:layout_weight="1"
android:background="@drawable/bg_eb423b_2_5"
android:gravity="center"
android:textColor="@color/white"
android:textSize="9sp"
tools:ignore="SmallSp"
tools:text="0.1GB" />
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -451,6 +469,8 @@ ...@@ -451,6 +469,8 @@
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:src="@mipmap/h_management" android:src="@mipmap/h_management"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
</LinearLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
......
[versions] [versions]
agp = "8.0.0" agp = "8.0.0"
kotlin = "1.8.0" kotlin = "1.8.0"
coreKtx = "1.8.1" coreKtx = "1.8.0"
junit = "4.13.2" junit = "4.13.2"
junitVersion = "1.1.5" junitVersion = "1.1.5"
espressoCore = "3.5.1" espressoCore = "3.5.1"
......
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