Commit 400f50c1 authored by wanglei's avatar wanglei

...

parent e80bb07a
......@@ -28,16 +28,6 @@ android {
}
}
buildTypes {
debug {
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.realse
// 设置是否要自动上传
// firebaseCrashlytics {
// mappingFileUploadEnabled true
// }
}
release {
minifyEnabled true
shrinkResources true
......@@ -64,7 +54,7 @@ android {
gradle.taskGraph.whenReady {
tasks.each { task ->
if (task.name.contains("uploadCrashlyticsMappingFile")) {
task.enabled = true
task.enabled = false
}
}
}
......
......@@ -38,6 +38,18 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.photomanager.PhotoManagerActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.photomanager.PhotoManagerAnimationActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.repeat.RepeatAnimationActivity"
android:exported="true"
......@@ -112,7 +124,8 @@
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> <!-- <activity -->
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<!-- <activity -->
<!-- android:name=".activity.whatsapp.WhatsAppCleanerActivity" -->
<!-- android:exported="false" -->
<!-- android:launchMode="singleTop" -->
......
package com.base.datarecovery.activity.photomanager
import android.content.Intent
import android.graphics.Color
import android.os.Environment
import androidx.activity.addCallback
import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope
import com.base.datarecovery.activity.repeat.RepeatActivity
import com.base.datarecovery.activity.screenshot.ScreenShotActivity
import com.base.datarecovery.bean.MediaBean
import com.base.datarecovery.databinding.ActivityPhotoManagerBinding
import com.base.datarecovery.help.BaseActivity
import com.base.datarecovery.help.FileHelp.getDirFiles
import com.base.datarecovery.help.KotlinExt.toFormatSize
import com.base.datarecovery.help.MediaStoreHelp.getImageMedia
import com.base.datarecovery.help.PermissionHelp.checkStorePermission
import com.base.datarecovery.help.PermissionHelp.requestStorePermission
import com.base.datarecovery.utils.BarUtils
import com.base.datarecovery.utils.FileHexEx.isImage
import com.base.datarecovery.view.DialogViews.showGerPermission
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import java.io.File
class PhotoManagerActivity : BaseActivity<ActivityPhotoManagerBinding>() {
override val binding: ActivityPhotoManagerBinding by lazy {
ActivityPhotoManagerBinding.inflate(layoutInflater)
}
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.WHITE)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
if (checkStorePermission()) {
initDataSize()
} else {
showGerPermission(desc = "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) {
if (it) {
initDataSize()
} else {
finishToMain()
}
}
})
}
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
finishToMain()
}
binding.flBack.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.cardScreenshot.setOnClickListener {
startActivity(Intent(this@PhotoManagerActivity, ScreenShotActivity::class.java))
finish()
}
binding.cardRepeatPhotos.setOnClickListener {
startActivity(Intent(this@PhotoManagerActivity, RepeatActivity::class.java))
finish()
}
}
private fun initDataSize() = lifecycleScope.launch(Dispatchers.IO) {
val dcimSize =
getDirFiles(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)).filter { isImage(it) }
.sumOf { it.length() }.toFormatSize()
val list = arrayListOf<MediaBean>()
getImageMedia(list)
val photoSize = (list.map { File(it.path) }.sumOf { it.length() } / 2).toFormatSize()
launch(Dispatchers.Main) {
binding.tvScreenshotSize.text = dcimSize
binding.tvDuplicateSize.text = photoSize
}
}
}
\ No newline at end of file
package com.base.datarecovery.activity.photomanager
import android.content.Intent
import android.view.View
import android.widget.Toast
import androidx.activity.addCallback
import androidx.lifecycle.lifecycleScope
import com.base.datarecovery.ads.AdmobMaxHelper
import com.base.datarecovery.databinding.ActivityScreenShotAnimationBinding
import com.base.datarecovery.help.BaseActivity
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlin.random.Random
class PhotoManagerAnimationActivity : BaseActivity<ActivityScreenShotAnimationBinding>() {
override val binding: ActivityScreenShotAnimationBinding by lazy {
ActivityScreenShotAnimationBinding.inflate(layoutInflater)
}
override fun initView() {
lifecycleScope.launch(Dispatchers.Main) {
delay(Random.nextLong(4000, 4500))
binding.lottie.visibility = View.INVISIBLE
binding.lottieCompleted.visibility = View.VISIBLE
binding.lottieCompleted.playAnimation()
delay(1500)
AdmobMaxHelper.admobMaxShowInterstitialAd(this@PhotoManagerAnimationActivity) {
startActivity(Intent(this@PhotoManagerAnimationActivity, PhotoManagerActivity::class.java))
finish()
}
}
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
Toast.makeText(this@PhotoManagerAnimationActivity, "wait a moment", Toast.LENGTH_SHORT).show()
}
}
}
\ No newline at end of file
......@@ -9,6 +9,7 @@ import android.view.animation.AccelerateDecelerateInterpolator
import com.base.datarecovery.activity.MainActivity
import com.base.datarecovery.activity.SettingActivity
import com.base.datarecovery.activity.junkclean.ScanJunkActivity
import com.base.datarecovery.activity.photomanager.PhotoManagerAnimationActivity
import com.base.datarecovery.activity.privacyspace.PrivacyPinOneActivity
import com.base.datarecovery.activity.privacyspace.PrivacySpaceActivity
import com.base.datarecovery.activity.recovery.FileScanResultActivity
......@@ -63,12 +64,10 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
})
}
}
binding.cardScreenshot.setOnClickListener {
startActivity(Intent(requireContext(), ScreenShotAnimationActivity::class.java))
}
binding.cardRepeatPhotos.setOnClickListener {
startActivity(Intent(requireContext(), RepeatAnimationActivity::class.java))
binding.cardPhotosManager.setOnClickListener {
startActivity(Intent(requireContext(), PhotoManagerAnimationActivity::class.java))
}
binding.flSetting.setOnClickListener {
startActivity(Intent(requireContext(), SettingActivity::class.java))
}
......@@ -110,15 +109,6 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
override fun onResume() {
super.onResume()
animatorSet.resume()
(requireActivity() as MainActivity).setScreenSize {
if (it > 0) {
binding.tvScreenSize.visibility = View.VISIBLE
binding.tvScreenSize.text = it.toFormatSize(0)
} else {
binding.tvScreenSize.visibility = View.GONE
}
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F2F3F7"
android:orientation="vertical"
tools:context=".activity.photomanager.PhotoManagerActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
tools:ignore="UselessParent">
<FrameLayout
android:id="@+id/fl_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="15dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:src="@mipmap/fanhui"
android:tint="@color/black"
tools:ignore="ContentDescription,UseAppTint" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Photo Manager"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</FrameLayout>
<androidx.cardview.widget.CardView
android:id="@+id/card_screenshot"
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="15dp"
app:cardCornerRadius="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:src="@mipmap/screenshot_m"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:layout_weight="1"
android:text="Screenshot Cleaner"
android:textColor="@color/black"
android:textSize="16sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_screenshot_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="5dp"
android:textColor="#FF2323"
tools:text="19.5MB" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="10dp"
android:src="@mipmap/jiantou"
tools:ignore="ContentDescription" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/card_repeat_photos"
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="15dp"
app:cardCornerRadius="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:src="@mipmap/duplicate_m"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:layout_weight="1"
android:text="Duplicate Photos"
android:textColor="@color/black"
android:textSize="16sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_duplicate_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="5dp"
android:textColor="#FF2323"
tools:text="19.5MB" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="10dp"
android:src="@mipmap/jiantou"
tools:ignore="ContentDescription" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
\ No newline at end of file
......@@ -11,15 +11,29 @@
android:id="@+id/lottie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintVertical_bias="0.4"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.4"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/loading" />
<com.base.datarecovery.view.XmlLottieAnimationView
android:id="@+id/lottie_completed"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_gravity="center"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.4"
app:lottie_autoPlay="false"
app:lottie_rawRes="@raw/loading_completed" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
......@@ -27,7 +41,6 @@
android:text="Please wait a moment"
android:textColor="#666666"
android:textSize="17sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/lottie"
......
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