Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
S
swiftcleanerphonehelper
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
swiftcleanerphonehelper
Commits
16d805b5
Commit
16d805b5
authored
Jan 06, 2025
by
Your Name
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
正式包
parent
b4a2b13b
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
537 additions
and
270 deletions
+537
-270
build.gradle.kts
app/build.gradle.kts
+5
-4
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+4
-0
CleanApplication.kt
...src/main/java/com/swiftcleaner/chovey/CleanApplication.kt
+2
-0
GlobalConfig.kt
app/src/main/java/com/swiftcleaner/chovey/GlobalConfig.kt
+22
-0
AppProcessActivity.java
...swiftcleaner/chovey/view/activity/AppProcessActivity.java
+48
-21
BatteryInfoActivity.java
...wiftcleaner/chovey/view/activity/BatteryInfoActivity.java
+41
-18
CleanJunkActivity.java
.../swiftcleaner/chovey/view/activity/CleanJunkActivity.java
+52
-19
EndCleanJunkActivity.java
...iftcleaner/chovey/view/activity/EndCleanJunkActivity.java
+46
-43
InfoActivity.java
...a/com/swiftcleaner/chovey/view/activity/InfoActivity.java
+76
-68
LargeFileActivity.java
.../swiftcleaner/chovey/view/activity/LargeFileActivity.java
+48
-21
ScreenShotActivity.java
...swiftcleaner/chovey/view/activity/ScreenShotActivity.java
+48
-20
SettingActivity.java
...om/swiftcleaner/chovey/view/activity/SettingActivity.java
+8
-1
SimilarPhotosActivity.kt
...wiftcleaner/chovey/view/activity/SimilarPhotosActivity.kt
+53
-18
StartActivity.java
.../com/swiftcleaner/chovey/view/activity/StartActivity.java
+24
-2
WhatsAppActivity.java
...m/swiftcleaner/chovey/view/activity/WhatsAppActivity.java
+47
-20
AppInfoAdapter.java
.../com/swiftcleaner/chovey/view/adapter/AppInfoAdapter.java
+1
-2
LargeFileAdapter.java
...om/swiftcleaner/chovey/view/adapter/LargeFileAdapter.java
+12
-12
activity_large_file.xml
app/src/main/res/layout/activity_large_file.xml
+0
-1
No files found.
app/build.gradle.kts
View file @
16d805b5
...
...
@@ -14,9 +14,8 @@ android {
applicationId
=
"com.swiftcleaner.chovey"
minSdk
=
28
targetSdk
=
34
versionCode
=
9
versionCode
=
10
versionName
=
"1.0"
testInstrumentationRunner
=
"androidx.test.runner.AndroidJUnitRunner"
}
// 添加签名配置
...
...
@@ -102,6 +101,8 @@ dependencies {
implementation
(
libs
.
applovin
.
vungle
)
implementation
(
libs
.
androidx
.
work
.
runtime
.
ktx
)
api
(
"com.geyifeng.immersionbar:immersionbar:3.2.2"
)
implementation
(
"io.reactivex.rxjava3:rxjava:3.1.5"
)
implementation
(
"io.reactivex.rxjava3:rxandroid:3.0.0"
)
implementation
(
"io.reactivex.rxjava3:rxjava:3.1.5"
)
implementation
(
"io.reactivex.rxjava3:rxandroid:3.0.0"
)
// debugApi ("com.squareup.leakcanary:leakcanary-android:2.12")//leakcanary
}
\ No newline at end of file
app/src/main/AndroidManifest.xml
View file @
16d805b5
...
...
@@ -191,6 +191,10 @@
android:name=
"com.google.android.gms.ads.APPLICATION_ID"
android:value=
"ca-app-pub-9723053978060994~5799767410"
/>
<!-- <meta-data-->
<!-- android:name="com.google.android.gms.ads.APPLICATION_ID"-->
<!-- android:value="ca-app-pub-3940256099942544~3347511713" />-->
<meta-data
android:name=
"com.facebook.sdk.ApplicationId"
android:value=
"@string/facebook_app_id"
/>
...
...
app/src/main/java/com/swiftcleaner/chovey/CleanApplication.kt
View file @
16d805b5
...
...
@@ -38,6 +38,7 @@ import com.swiftcleaner.chovey.business.push.UnlockReceiver
import
com.swiftcleaner.chovey.util.SPUtils
import
com.swiftcleaner.chovey.view.activity.StartActivity
import
com.tool.elite.cleaner.utils.ActivityManagerUtils
import
org.json.JSONObject
import
java.util.Calendar
import
java.util.UUID
...
...
@@ -71,6 +72,7 @@ class CleanApplication : Application() {
SPUtils
.
getInstance
().
putLong
(
KEY_INSTALL_TIME
,
System
.
currentTimeMillis
())
if
(
SPUtils
.
getInstance
().
getBoolean
(
KEY_INIT
))
init
()
}
private
fun
init
()
{
...
...
app/src/main/java/com/swiftcleaner/chovey/GlobalConfig.kt
View file @
16d805b5
...
...
@@ -37,7 +37,29 @@ object GlobalConfig {
* Key solar 归因key
*/
const
val
KEY_SOLAR
=
"17697786c4fcd7e9"
/* 以下测试广告id*/
// // admob广告位id
// inline val ID_ADMOB_OPEN get() = "/6499/example/app-open"
// inline val ID_ADMOB_INTER get() = "ca-app-pub-3940256099942544/1033173712"
// inline val ID_ADMOB_NATIVE get() = "ca-app-pub-3940256099942544/2247696110"
// inline val ID_ADMOB_BANNER get() = "ca-app-pub-3940256099942544/9214589741"
// inline val ID_ADMOB_REWARD get() = "None"
//
//
// // max广告位id
// inline val ID_MAX_OPEN get() = "None"
// inline val ID_MAX_INTER get() = "None"
// inline val ID_MAX_NATIVE get() = "None"
// inline val ID_MAX_BANNER get() = "None"
// inline val ID_MAX_REWARD get() = "None"
//
// /**
// * Key MAX MAX广告初始化key
// */
// const val KEY_MAX = "GGPreND6SRmCt1zJgn5faiLGD8c2PVGPLgPpSg7cHanVTud1DhtuI9MmteTqlEviaJ57WnxW68kQDaATJ5z3cW"
/*以下正式广告id*/
// admob广告位id
inline
val
ID_ADMOB_OPEN
get
()
=
"ca-app-pub-9723053978060994/2762540539"
inline
val
ID_ADMOB_INTER
get
()
=
"ca-app-pub-9723053978060994/3372651292"
...
...
app/src/main/java/com/swiftcleaner/chovey/view/activity/AppProcessActivity.java
View file @
16d805b5
package
com
.
swiftcleaner
.
chovey
.
view
.
activity
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.core.app.ActivityCompat
;
import
androidx.core.content.ContextCompat
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
...
...
@@ -7,6 +8,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import
android.Manifest
;
import
android.animation.ValueAnimator
;
import
android.app.Activity
;
import
android.content.ActivityNotFoundException
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.pm.ApplicationInfo
;
...
...
@@ -29,6 +31,7 @@ import com.swiftcleaner.chovey.model.bean.AppInfoBean;
import
com.swiftcleaner.chovey.model.tool.MemoryUtils
;
import
com.swiftcleaner.chovey.model.util.FinishMain
;
import
com.swiftcleaner.chovey.view.BaseActivity
;
import
com.swiftcleaner.chovey.view.MainActivity
;
import
com.swiftcleaner.chovey.view.adapter.AppProcessAdapter
;
import
com.swiftcleaner.chovey.view.dialog.CustomBottomSheetDialog
;
import
com.swiftcleaner.chovey.view.dialog.CustomScoreDialog
;
...
...
@@ -152,12 +155,15 @@ public class AppProcessActivity extends BaseActivity<ActivityAppProcessBinding>
private
void
requestFilesAccessPermission
()
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
Intent
intent
=
new
Intent
(
Settings
.
ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
);
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
intent
.
setData
(
Uri
.
parse
(
"package:"
+
getPackageName
()));
startActivityForResult
(
intent
,
REQUEST_ALL_FILES_ACCESS_PERMISSION
);
try
{
Intent
intent
=
new
Intent
(
Settings
.
ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
);
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
intent
.
setData
(
Uri
.
parse
(
"package:"
+
getPackageName
()));
startActivityForResult
(
intent
,
REQUEST_ALL_FILES_ACCESS_PERMISSION
);
}
catch
(
ActivityNotFoundException
e
)
{
Toast
.
makeText
(
this
,
"Unable to request permission, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
else
{
// 在Android 10及以下版本,请求READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限
ActivityCompat
.
requestPermissions
(
this
,
new
String
[]{
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
},
REQUEST_PERMISSION_CODE
);
}
}
...
...
@@ -168,7 +174,7 @@ public class AppProcessActivity extends BaseActivity<ActivityAppProcessBinding>
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
if
(!
checkFilesAccessPermission
(
this
))
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
();
finish
();
}
}
else
if
(
requestCode
==
REQUEST_PERMISSION_CODE
)
{
...
...
@@ -176,12 +182,29 @@ public class AppProcessActivity extends BaseActivity<ActivityAppProcessBinding>
// 权限已授予,可以继续操作
}
else
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
();
finish
();
}
}
}
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
// 检查权限是否已经授予
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
if
(
Environment
.
isExternalStorageManager
())
{
// 权限已授予,刷新页面或执行相关操作
Intent
intent
=
new
Intent
(
this
,
MainActivity
.
class
);
startActivity
(
intent
);
finish
();
}
else
{
// 权限未授予,提示用户
Toast
.
makeText
(
this
,
"Permission not granted, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
}
}
private
void
initProcess
()
{
// 获取总内存
String
totalMemory
=
MemoryUtils
.
getUsedDiskMemory
(
this
);
...
...
@@ -260,20 +283,24 @@ public class AppProcessActivity extends BaseActivity<ActivityAppProcessBinding>
@Override
public
void
onSubmit
()
{
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
AppProcessActivity
.
this
,
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
()
->
{
return
null
;
},
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
if
(
AdmobManager
.
INSTANCE
.
isShowAdInter
()){
if
(
AdmobManager
.
INSTANCE
.
isShowAdBackInter
()){
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
AppProcessActivity
.
this
,
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
()
->
{
return
null
;
},
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
if
(
AdmobManager
.
INSTANCE
.
isShowAdInter
()){
}
return
null
;
},
false
);
}
return
null
;
},
false
);
}
else
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
}
}
});
customScoreDialog
.
show
();
...
...
app/src/main/java/com/swiftcleaner/chovey/view/activity/BatteryInfoActivity.java
View file @
16d805b5
package
com
.
swiftcleaner
.
chovey
.
view
.
activity
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.core.app.ActivityCompat
;
import
androidx.core.content.ContextCompat
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
...
...
@@ -30,6 +31,7 @@ import com.swiftcleaner.chovey.model.bean.AppInfoBean;
import
com.swiftcleaner.chovey.model.util.AppSchedulers
;
import
com.swiftcleaner.chovey.model.util.FinishMain
;
import
com.swiftcleaner.chovey.view.BaseActivity
;
import
com.swiftcleaner.chovey.view.MainActivity
;
import
com.swiftcleaner.chovey.view.adapter.AppInfoAdapter
;
import
com.swiftcleaner.chovey.view.dialog.CustomScoreDialog
;
import
com.swiftcleaner.chovey.view.dialog.LoadingDialog
;
...
...
@@ -122,7 +124,6 @@ public class BatteryInfoActivity extends BaseActivity<ActivityBatteryInfoBinding
}
private
void
requestFilesAccessPermission
()
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
try
{
Intent
intent
=
new
Intent
(
Settings
.
ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
);
...
...
@@ -130,19 +131,37 @@ public class BatteryInfoActivity extends BaseActivity<ActivityBatteryInfoBinding
intent
.
setData
(
Uri
.
parse
(
"package:"
+
getPackageName
()));
startActivityForResult
(
intent
,
REQUEST_ALL_FILES_ACCESS_PERMISSION
);
}
catch
(
ActivityNotFoundException
e
)
{
Toast
.
makeText
(
this
,
"Activity not found"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"Unable to request permission, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
else
{
ActivityCompat
.
requestPermissions
(
this
,
new
String
[]{
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
},
REQUEST_PERMISSION_CODE
);
}
}
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
// 检查权限是否已经授予
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
if
(
Environment
.
isExternalStorageManager
())
{
// 权限已授予,刷新页面或执行相关操作
Intent
intent
=
new
Intent
(
this
,
MainActivity
.
class
);
startActivity
(
intent
);
finish
();
}
else
{
// 权限未授予,提示用户
Toast
.
makeText
(
this
,
"Permission not granted, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
}
}
@Override
public
void
onRequestPermissionsResult
(
int
requestCode
,
@NonNull
String
[]
permissions
,
@NonNull
int
[]
grantResults
)
{
super
.
onRequestPermissionsResult
(
requestCode
,
permissions
,
grantResults
);
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
if
(!
checkFilesAccessPermission
(
this
))
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
();
finish
();
}
}
else
if
(
requestCode
==
REQUEST_PERMISSION_CODE
)
{
...
...
@@ -150,7 +169,7 @@ public class BatteryInfoActivity extends BaseActivity<ActivityBatteryInfoBinding
// 权限已授予,可以继续操作
}
else
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
();
finish
();
}
}
...
...
@@ -250,19 +269,23 @@ public class BatteryInfoActivity extends BaseActivity<ActivityBatteryInfoBinding
@Override
public
void
onSubmit
()
{
if
(
AdmobManager
.
INSTANCE
.
isShowAdBackInter
()){
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
BatteryInfoActivity
.
this
,
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
()
->
{
return
null
;
},
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
false
);
}
else
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
}
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
BatteryInfoActivity
.
this
,
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
()
->
{
return
null
;
},
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
false
);
}
});
...
...
app/src/main/java/com/swiftcleaner/chovey/view/activity/CleanJunkActivity.java
View file @
16d805b5
package
com
.
swiftcleaner
.
chovey
.
view
.
activity
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.core.app.ActivityCompat
;
import
androidx.core.content.ContextCompat
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
...
...
@@ -8,6 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import
android.Manifest
;
import
android.animation.ValueAnimator
;
import
android.app.Activity
;
import
android.content.ActivityNotFoundException
;
import
android.content.Context
;
import
android.content.pm.PackageManager
;
import
android.net.Uri
;
...
...
@@ -30,6 +32,7 @@ import com.swiftcleaner.chovey.model.tool.ToastUtil;
import
com.swiftcleaner.chovey.model.util.AppSchedulers
;
import
com.swiftcleaner.chovey.model.util.FinishMain
;
import
com.swiftcleaner.chovey.view.BaseActivity
;
import
com.swiftcleaner.chovey.view.MainActivity
;
import
com.swiftcleaner.chovey.view.adapter.ApkCleanAdapter
;
import
com.swiftcleaner.chovey.view.adapter.EmptyCleanAdapter
;
import
com.swiftcleaner.chovey.view.adapter.LogsCleanAdapter
;
...
...
@@ -138,12 +141,15 @@ public class CleanJunkActivity extends BaseActivity<ActivityCleanJunkBinding> {
private
void
requestFilesAccessPermission
()
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
Intent
intent
=
new
Intent
(
Settings
.
ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
);
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
intent
.
setData
(
Uri
.
parse
(
"package:"
+
getPackageName
()));
startActivityForResult
(
intent
,
REQUEST_ALL_FILES_ACCESS_PERMISSION
);
try
{
Intent
intent
=
new
Intent
(
Settings
.
ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
);
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
intent
.
setData
(
Uri
.
parse
(
"package:"
+
getPackageName
()));
startActivityForResult
(
intent
,
REQUEST_ALL_FILES_ACCESS_PERMISSION
);
}
catch
(
ActivityNotFoundException
e
)
{
Toast
.
makeText
(
this
,
"Unable to request permission, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
else
{
// 在Android 10及以下版本,请求READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限
ActivityCompat
.
requestPermissions
(
this
,
new
String
[]{
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
},
REQUEST_PERMISSION_CODE
);
}
}
...
...
@@ -189,7 +195,7 @@ public class CleanJunkActivity extends BaseActivity<ActivityCleanJunkBinding> {
@Override
public
void
onClick
(
View
view
)
{
if
(
selectedSize
<
0
)
{
ToastUtil
.
showLongToast
(
CleanJunkActivity
.
this
,
"
请勾选要删除的文件
"
);
ToastUtil
.
showLongToast
(
CleanJunkActivity
.
this
,
"
Please check the file to be deleted
"
);
}
else
{
if
(
view
!=
null
)
{
onClickCleanUpButton
(
view
);
...
...
@@ -212,6 +218,25 @@ public class CleanJunkActivity extends BaseActivity<ActivityCleanJunkBinding> {
}
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
// 检查权限是否已经授予
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
if
(
Environment
.
isExternalStorageManager
())
{
// 权限已授予,刷新页面或执行相关操作
Intent
intent
=
new
Intent
(
this
,
MainActivity
.
class
);
startActivity
(
intent
);
finish
();
}
else
{
// 权限未授予,提示用户
Toast
.
makeText
(
this
,
"Permission not granted, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
}
}
@Override
public
void
onRequestPermissionsResult
(
int
requestCode
,
@NonNull
String
[]
permissions
,
@NonNull
int
[]
grantResults
)
{
...
...
@@ -226,15 +251,18 @@ public class CleanJunkActivity extends BaseActivity<ActivityCleanJunkBinding> {
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
if
(!
checkFilesAccessPermission
(
this
))
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
();
finish
();
}
}
else
if
(
requestCode
==
REQUEST_PERMISSION_CODE
)
{
if
(
grantResults
.
length
>
0
&&
grantResults
[
0
]
==
PackageManager
.
PERMISSION_GRANTED
&&
grantResults
[
1
]
==
PackageManager
.
PERMISSION_GRANTED
)
{
// 权限已授予,可以继续操作
Intent
intent
=
new
Intent
(
this
,
MainActivity
.
class
);
startActivity
(
intent
);
finish
();
}
else
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
();
finish
();
}
}
...
...
@@ -603,17 +631,22 @@ public class CleanJunkActivity extends BaseActivity<ActivityCleanJunkBinding> {
@Override
public
void
onSubmit
()
{
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
CleanJunkActivity
.
this
,
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
()
->
{
return
null
;
},
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
false
);
if
(
AdmobManager
.
INSTANCE
.
isShowAdBackInter
()){
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
CleanJunkActivity
.
this
,
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
()
->
{
return
null
;
},
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
false
);
}
else
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
}
}
});
customScoreDialog
.
show
();
...
...
app/src/main/java/com/swiftcleaner/chovey/view/activity/EndCleanJunkActivity.java
View file @
16d805b5
...
...
@@ -13,6 +13,7 @@ import com.swiftcleaner.chovey.business.EventUtils;
import
com.swiftcleaner.chovey.business.admob.AdmobManager
;
import
com.swiftcleaner.chovey.databinding.ActivityEndCleanJunkBinding
;
import
com.swiftcleaner.chovey.databinding.ActivityScreenShotBinding
;
import
com.swiftcleaner.chovey.model.util.FinishMain
;
import
com.swiftcleaner.chovey.view.BaseActivity
;
import
com.swiftcleaner.chovey.view.MainActivity
;
import
com.swiftcleaner.chovey.view.dialog.CustomScoreDialog
;
...
...
@@ -21,6 +22,7 @@ import com.swiftcleaner.chovey.view.dialog.LoadingDialog;
public
class
EndCleanJunkActivity
extends
BaseActivity
<
ActivityEndCleanJunkBinding
>
{
private
CountDownTimer
countDownTimer
;
private
ValueAnimator
animator
;
@Override
protected
ActivityEndCleanJunkBinding
getViewBinding
()
{
return
ActivityEndCleanJunkBinding
.
inflate
(
getLayoutInflater
());
...
...
@@ -37,6 +39,7 @@ public class EndCleanJunkActivity extends BaseActivity<ActivityEndCleanJunkBindi
initPage
();
initShow
();
}
private
void
initPage
()
{
binding
.
clRadarview
.
setVisibility
(
View
.
VISIBLE
);
binding
.
radarview
.
setSearching
(
true
);
...
...
@@ -49,8 +52,9 @@ public class EndCleanJunkActivity extends BaseActivity<ActivityEndCleanJunkBindi
@Override
public
void
onFinish
()
{
binding
.
radarview
.
setSearching
(
false
);
countDownTimer
.
cancel
();
animator
.
cancel
();
if
(
animator
!=
null
)
{
animator
.
cancel
();
}
binding
.
clRadarview
.
setVisibility
(
View
.
GONE
);
LoadingDialog
loadingDialog
=
new
LoadingDialog
(
EndCleanJunkActivity
.
this
);
loadingDialog
.
show
();
...
...
@@ -68,58 +72,51 @@ public class EndCleanJunkActivity extends BaseActivity<ActivityEndCleanJunkBindi
}
}.
start
();
}
private
void
initAnimotorPer
(){
// 创建ValueAnimator,从1到100
animator
=
ValueAnimator
.
ofInt
(
1
,
100
);
animator
.
setDuration
(
3000
);
// 3秒
// 设置更新监听器,每帧更新进度文本
animator
.
addUpdateListener
(
new
ValueAnimator
.
AnimatorUpdateListener
()
{
@Override
public
void
onAnimationUpdate
(
ValueAnimator
animation
)
{
int
currentValue
=
(
int
)
animation
.
getAnimatedValue
();
binding
.
parText
.
setText
(
currentValue
+
"%"
);
}
private
void
initAnimotorPer
()
{
animator
=
ValueAnimator
.
ofInt
(
1
,
100
);
animator
.
setDuration
(
3000
);
animator
.
addUpdateListener
(
animation
->
{
int
currentValue
=
(
int
)
animation
.
getAnimatedValue
();
binding
.
parText
.
setText
(
currentValue
+
"%"
);
});
// 开始动画
animator
.
start
();
}
private
void
initShow
()
{
Intent
intent
=
getIntent
();
String
stringExtra
=
intent
.
getStringExtra
(
"cleanstr"
);
binding
.
endCleanJunkFileNum
.
setText
(
"Cleaned "
+
stringExtra
+
" junk files"
);
binding
.
ivReturn
.
setOnClickListener
(
v
->{
initCustDialog
();
});
binding
.
buttonBatteryInfoCheckNo
.
setOnClickListener
(
v
->{
binding
.
endCleanJunkFileNum
.
setText
(
"Cleaned "
+
stringExtra
+
" junk files"
);
binding
.
ivReturn
.
setOnClickListener
(
v
->
initCustDialog
());
binding
.
buttonBatteryInfoCheckNo
.
setOnClickListener
(
v
->
{
startActivity
(
new
Intent
(
EndCleanJunkActivity
.
this
,
InfoActivity
.
class
));
finish
();
});
binding
.
buttonAppManagerCheckNo
.
setOnClickListener
(
v
->
{
binding
.
buttonAppManagerCheckNo
.
setOnClickListener
(
v
->
{
startActivity
(
new
Intent
(
EndCleanJunkActivity
.
this
,
BatteryInfoActivity
.
class
));
finish
();
});
binding
.
buttonWhatsappCheckNo
.
setOnClickListener
(
v
->
{
binding
.
buttonWhatsappCheckNo
.
setOnClickListener
(
v
->
{
startActivity
(
new
Intent
(
EndCleanJunkActivity
.
this
,
WhatsAppActivity
.
class
));
finish
();
});
binding
.
buttonAppProcessCheckNo
.
setOnClickListener
(
v
->
{
binding
.
buttonAppProcessCheckNo
.
setOnClickListener
(
v
->
{
startActivity
(
new
Intent
(
EndCleanJunkActivity
.
this
,
AppProcessActivity
.
class
));
finish
();
});
binding
.
buttonCleanJunkCleanNo
.
setOnClickListener
(
v
->
{
binding
.
buttonCleanJunkCleanNo
.
setOnClickListener
(
v
->
{
startActivity
(
new
Intent
(
EndCleanJunkActivity
.
this
,
CleanJunkActivity
.
class
));
finish
();
});
binding
.
buttonLargefilecleanerCleanUp
.
setOnClickListener
(
v
->
{
binding
.
buttonLargefilecleanerCleanUp
.
setOnClickListener
(
v
->
{
startActivity
(
new
Intent
(
EndCleanJunkActivity
.
this
,
LargeFileActivity
.
class
));
finish
();
});
binding
.
buttonSimilarPhotos
.
setOnClickListener
(
v
->
{
binding
.
buttonSimilarPhotos
.
setOnClickListener
(
v
->
{
startActivity
(
new
Intent
(
EndCleanJunkActivity
.
this
,
SimilarPhotosActivity
.
class
));
finish
();
});
binding
.
buttonScreenshot
.
setOnClickListener
(
v
->
{
binding
.
buttonScreenshot
.
setOnClickListener
(
v
->
{
startActivity
(
new
Intent
(
EndCleanJunkActivity
.
this
,
ScreenShotActivity
.
class
));
finish
();
});
...
...
@@ -127,9 +124,9 @@ public class EndCleanJunkActivity extends BaseActivity<ActivityEndCleanJunkBindi
private
void
initBar
()
{
ImmersionBar
.
with
(
this
)
.
transparentStatusBar
()
// 透明状态栏
.
statusBarDarkFont
(
false
)
// 状态栏字体颜色为浅色
.
navigationBarDarkIcon
(
true
)
// 导航栏图标颜色为浅色
.
transparentStatusBar
()
.
statusBarDarkFont
(
false
)
.
navigationBarDarkIcon
(
true
)
.
init
();
}
...
...
@@ -148,32 +145,38 @@ public class EndCleanJunkActivity extends BaseActivity<ActivityEndCleanJunkBindi
@Override
public
void
onSubmit
()
{
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
EndCleanJunkActivity
.
this
,
()
->
{
finish
();
return
null
;
},
()
->
{
return
null
;
},
()
->
{
finish
();
return
null
;
},
false
);
if
(
AdmobManager
.
INSTANCE
.
isShowAdBackInter
()){
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
EndCleanJunkActivity
.
this
,
()
->
{
finish
();
return
null
;
},
()
->
{
return
null
;
},
()
->
{
finish
();
return
null
;
},
false
);
}
else
{
finish
();
}
}
});
customScoreDialog
.
show
();
}
@Override
protected
void
onDestroy
()
{
super
.
onDestroy
();
if
(
binding
.
radarview
!=
null
)
{
if
(
binding
.
radarview
!=
null
)
{
binding
.
radarview
.
setSearching
(
false
);
}
if
(
animator
!=
null
)
{
if
(
animator
!=
null
)
{
animator
.
cancel
();
}
if
(
countDownTimer
!=
null
)
{
if
(
countDownTimer
!=
null
)
{
countDownTimer
.
cancel
();
}
}
...
...
app/src/main/java/com/swiftcleaner/chovey/view/activity/InfoActivity.java
View file @
16d805b5
This diff is collapsed.
Click to expand it.
app/src/main/java/com/swiftcleaner/chovey/view/activity/LargeFileActivity.java
View file @
16d805b5
package
com
.
swiftcleaner
.
chovey
.
view
.
activity
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.appcompat.widget.AppCompatButton
;
import
androidx.cardview.widget.CardView
;
import
androidx.core.app.ActivityCompat
;
...
...
@@ -12,6 +13,7 @@ import android.animation.ValueAnimator;
import
android.annotation.SuppressLint
;
import
android.app.Activity
;
import
android.app.Dialog
;
import
android.content.ActivityNotFoundException
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.pm.PackageManager
;
...
...
@@ -35,6 +37,7 @@ import com.swiftcleaner.chovey.model.tool.MediaHelps;
import
com.swiftcleaner.chovey.model.tool.ToastUtil
;
import
com.swiftcleaner.chovey.model.util.FinishMain
;
import
com.swiftcleaner.chovey.view.BaseActivity
;
import
com.swiftcleaner.chovey.view.MainActivity
;
import
com.swiftcleaner.chovey.view.adapter.LargeFileAdapter
;
import
com.swiftcleaner.chovey.view.dialog.CustomScoreDialog
;
import
com.swiftcleaner.chovey.view.dialog.LoadingDialog
;
...
...
@@ -135,23 +138,43 @@ public class LargeFileActivity extends BaseActivity<ActivityLargeFileBinding> {
private
void
requestFilesAccessPermission
()
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
Intent
intent
=
new
Intent
(
Settings
.
ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
);
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
intent
.
setData
(
Uri
.
parse
(
"package:"
+
getPackageName
()));
startActivityForResult
(
intent
,
REQUEST_ALL_FILES_ACCESS_PERMISSION
);
try
{
Intent
intent
=
new
Intent
(
Settings
.
ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
);
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
intent
.
setData
(
Uri
.
parse
(
"package:"
+
getPackageName
()));
startActivityForResult
(
intent
,
REQUEST_ALL_FILES_ACCESS_PERMISSION
);
}
catch
(
ActivityNotFoundException
e
)
{
Toast
.
makeText
(
this
,
"Unable to request permission, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
else
{
// 在Android 10及以下版本,请求READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限
ActivityCompat
.
requestPermissions
(
this
,
new
String
[]{
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
},
REQUEST_PERMISSION_CODE
);
}
}
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
// 检查权限是否已经授予
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
if
(
Environment
.
isExternalStorageManager
())
{
// 权限已授予,刷新页面或执行相关操作
Intent
intent
=
new
Intent
(
this
,
MainActivity
.
class
);
startActivity
(
intent
);
finish
();
}
else
{
// 权限未授予,提示用户
Toast
.
makeText
(
this
,
"Permission not granted, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
}
}
@Override
public
void
onRequestPermissionsResult
(
int
requestCode
,
@NonNull
String
[]
permissions
,
@NonNull
int
[]
grantResults
)
{
super
.
onRequestPermissionsResult
(
requestCode
,
permissions
,
grantResults
);
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
if
(!
checkFilesAccessPermission
(
this
))
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
();
finish
();
}
}
else
if
(
requestCode
==
REQUEST_PERMISSION_CODE
)
{
...
...
@@ -159,17 +182,16 @@ public class LargeFileActivity extends BaseActivity<ActivityLargeFileBinding> {
// 权限已授予,可以继续操作
}
else
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
();
finish
();
}
}
}
private
void
initShow
()
{
binding
.
ivReturn
.
setOnClickListener
(
v
->
initCustDialog
());
binding
.
largeFileButton
.
setOnClickListener
(
v
->
{
if
(
selectedSize
==
0
)
{
ToastUtil
.
showLongToast
(
this
,
"
请勾选要删除的文件
"
);
ToastUtil
.
showLongToast
(
this
,
"
Please check the file to be deleted
"
);
}
else
{
showCustomDialog
();
}
...
...
@@ -308,17 +330,22 @@ public class LargeFileActivity extends BaseActivity<ActivityLargeFileBinding> {
@Override
public
void
onSubmit
()
{
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
LargeFileActivity
.
this
,
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
()
->
{
return
null
;
},
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
false
);
if
(
AdmobManager
.
INSTANCE
.
isShowAdBackInter
()){
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
LargeFileActivity
.
this
,
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
()
->
{
return
null
;
},
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
false
);
}
else
{
finish
();
}
}
});
customScoreDialog
.
show
();
...
...
app/src/main/java/com/swiftcleaner/chovey/view/activity/ScreenShotActivity.java
View file @
16d805b5
package
com
.
swiftcleaner
.
chovey
.
view
.
activity
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.appcompat.widget.AppCompatButton
;
import
androidx.cardview.widget.CardView
;
import
androidx.core.app.ActivityCompat
;
...
...
@@ -11,6 +12,7 @@ import android.Manifest;
import
android.animation.ValueAnimator
;
import
android.app.Activity
;
import
android.app.Dialog
;
import
android.content.ActivityNotFoundException
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.pm.PackageManager
;
...
...
@@ -36,6 +38,7 @@ import com.swiftcleaner.chovey.model.tool.ToastUtil;
import
com.swiftcleaner.chovey.model.util.AppSchedulers
;
import
com.swiftcleaner.chovey.model.util.FinishMain
;
import
com.swiftcleaner.chovey.view.BaseActivity
;
import
com.swiftcleaner.chovey.view.MainActivity
;
import
com.swiftcleaner.chovey.view.adapter.ScreenShotAdapter
;
import
com.swiftcleaner.chovey.view.dialog.CustomScoreDialog
;
import
com.swiftcleaner.chovey.view.dialog.LoadingDialog
;
...
...
@@ -132,12 +135,15 @@ public class ScreenShotActivity extends BaseActivity<ActivityScreenShotBinding>
private
void
requestFilesAccessPermission
()
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
Intent
intent
=
new
Intent
(
Settings
.
ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
);
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
intent
.
setData
(
Uri
.
parse
(
"package:"
+
getPackageName
()));
startActivityForResult
(
intent
,
REQUEST_ALL_FILES_ACCESS_PERMISSION
);
try
{
Intent
intent
=
new
Intent
(
Settings
.
ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
);
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
intent
.
setData
(
Uri
.
parse
(
"package:"
+
getPackageName
()));
startActivityForResult
(
intent
,
REQUEST_ALL_FILES_ACCESS_PERMISSION
);
}
catch
(
ActivityNotFoundException
e
)
{
Toast
.
makeText
(
this
,
"Unable to request permission, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
else
{
// 在Android 10及以下版本,请求READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限
ActivityCompat
.
requestPermissions
(
this
,
new
String
[]{
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
},
REQUEST_PERMISSION_CODE
);
}
}
...
...
@@ -148,7 +154,7 @@ public class ScreenShotActivity extends BaseActivity<ActivityScreenShotBinding>
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
if
(!
checkFilesAccessPermission
(
this
))
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
();
finish
();
}
}
else
if
(
requestCode
==
REQUEST_PERMISSION_CODE
)
{
...
...
@@ -156,7 +162,7 @@ public class ScreenShotActivity extends BaseActivity<ActivityScreenShotBinding>
// 权限已授予,可以继续操作
}
else
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
();
finish
();
}
}
...
...
@@ -167,7 +173,7 @@ public class ScreenShotActivity extends BaseActivity<ActivityScreenShotBinding>
});
binding
.
buttonScreenshotDelete
.
setOnClickListener
(
v
->
{
if
(
selectedSize
==
0
)
{
ToastUtil
.
showLongToast
(
this
,
"
请勾选要删除的文件
"
);
ToastUtil
.
showLongToast
(
this
,
"
Please check the file to be deleted
"
);
}
else
{
showCustomDialog
();
}
...
...
@@ -289,7 +295,24 @@ public class ScreenShotActivity extends BaseActivity<ActivityScreenShotBinding>
startActivity
(
intent
);
finish
();
}
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
// 检查权限是否已经授予
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
if
(
Environment
.
isExternalStorageManager
())
{
// 权限已授予,刷新页面或执行相关操作
Intent
intent
=
new
Intent
(
this
,
MainActivity
.
class
);
startActivity
(
intent
);
finish
();
}
else
{
// 权限未授予,提示用户
Toast
.
makeText
(
this
,
"Permission not granted, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
}
}
private
String
formatFileSize
(
long
size
)
{
if
(
size
<=
0
)
return
"0 Bytes"
;
final
String
[]
units
=
new
String
[]{
"Bytes"
,
"KB"
,
"MB"
,
"GB"
,
"TB"
};
...
...
@@ -321,17 +344,22 @@ public class ScreenShotActivity extends BaseActivity<ActivityScreenShotBinding>
@Override
public
void
onSubmit
()
{
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
ScreenShotActivity
.
this
,
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
()
->
{
return
null
;
},
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
false
);
if
(
AdmobManager
.
INSTANCE
.
isShowAdBackInter
()){
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
ScreenShotActivity
.
this
,
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
()
->
{
return
null
;
},
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
false
);
}
else
{
finish
();
}
}
});
customScoreDialog
.
show
();
...
...
app/src/main/java/com/swiftcleaner/chovey/view/activity/SettingActivity.java
View file @
16d805b5
...
...
@@ -7,6 +7,7 @@ import androidx.appcompat.widget.AppCompatButton;
import
androidx.cardview.widget.CardView
;
import
android.app.Dialog
;
import
android.content.ActivityNotFoundException
;
import
android.content.ClipData
;
import
android.content.ClipboardManager
;
import
android.content.Context
;
...
...
@@ -55,7 +56,12 @@ public class SettingActivity extends AppCompatActivity {
binding
.
settingCl3Policy
.
setOnClickListener
(
v
->
{
Uri
uri
=
Uri
.
parse
(
URL_PRIVACY
);
Intent
intent
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri
);
startActivity
(
intent
);
try
{
startActivity
(
intent
);
}
catch
(
ActivityNotFoundException
e
)
{
e
.
printStackTrace
();
Toast
.
makeText
(
this
,
"No app can handle this action"
,
Toast
.
LENGTH_SHORT
).
show
();
}
});
// String token = SPUtils.Companion.getInstance().getString("token", "");
...
...
@@ -136,6 +142,7 @@ public class SettingActivity extends AppCompatActivity {
});
customScoreDialog
.
show
();
}
//复制
private
void
copyTextToClipboard
(
String
text
)
{
// 获取剪贴板管理器
...
...
app/src/main/java/com/swiftcleaner/chovey/view/activity/SimilarPhotosActivity.kt
View file @
16d805b5
...
...
@@ -2,6 +2,7 @@ package com.swiftcleaner.chovey.view.activity
import
android.Manifest
import
android.app.Activity
import
android.content.ActivityNotFoundException
import
android.content.Context
import
android.content.Intent
import
android.content.pm.PackageManager
...
...
@@ -29,6 +30,7 @@ import com.swiftcleaner.chovey.model.bean.SimilarBean
import
com.swiftcleaner.chovey.model.tool.FileHelps
import
com.swiftcleaner.chovey.model.tool.MediaHelps
import
com.swiftcleaner.chovey.model.util.FinishMain.finishToMain
import
com.swiftcleaner.chovey.view.MainActivity
import
com.swiftcleaner.chovey.view.adapter.SimilarPhotosAdapter
import
com.swiftcleaner.chovey.view.dialog.CustomScoreDialog
import
com.swiftcleaner.chovey.view.dialog.LoadingDialog
...
...
@@ -190,17 +192,21 @@ class SimilarPhotosActivity : AppCompatActivity() {
}
override
fun
onSubmit
()
{
showInterstitialAd
(
this
@SimilarPhotosActivity
,
{
finishToMain
(
activity
)
null
},
{
null
},
{
finishToMain
(
activity
)
null
},
false
)
if
(
AdmobManager
.
isShowAdBackInter
()){
showInterstitialAd
(
this
@SimilarPhotosActivity
,
{
finishToMain
(
activity
)
null
},
{
null
},
{
finishToMain
(
activity
)
null
},
false
)
}
else
{
finishToMain
(
activity
)
}
}
})
customScoreDialog
.
show
()
...
...
@@ -252,10 +258,19 @@ class SimilarPhotosActivity : AppCompatActivity() {
private
fun
requestFilesAccessPermission
()
{
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"
)
startActivityForResult
(
intent
,
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
try
{
val
intent
=
Intent
(
Settings
.
ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
)
intent
.
addCategory
(
"android.intent.category.DEFAULT"
)
intent
.
data
=
Uri
.
parse
(
"package:$packageName"
)
startActivityForResult
(
intent
,
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
}
catch
(
e
:
ActivityNotFoundException
)
{
Toast
.
makeText
(
this
,
"Unable to request permission, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
()
}
}
else
{
// 在Android 10及以下版本,请求READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限
ActivityCompat
.
requestPermissions
(
...
...
@@ -268,7 +283,27 @@ class SimilarPhotosActivity : AppCompatActivity() {
)
}
}
override
fun
onActivityResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
// 检查权限是否已经授予
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
if
(
Environment
.
isExternalStorageManager
())
{
// 权限已授予,刷新页面或执行相关操作
val
intent
=
Intent
(
this
,
MainActivity
::
class
.
java
)
startActivity
(
intent
)
finish
()
}
else
{
// 权限未授予,提示用户
Toast
.
makeText
(
this
,
"Permission not granted, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
()
}
}
}
}
override
fun
onRequestPermissionsResult
(
requestCode
:
Int
,
permissions
:
Array
<
String
?
>,
...
...
@@ -278,7 +313,7 @@ class SimilarPhotosActivity : AppCompatActivity() {
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
if
(!
checkFilesAccessPermission
(
this
))
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
()
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
()
finish
()
}
}
else
if
(
requestCode
==
REQUEST_PERMISSION_CODE
)
{
...
...
@@ -286,7 +321,7 @@ class SimilarPhotosActivity : AppCompatActivity() {
// 权限已授予,可以继续操作
}
else
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
()
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
()
finish
()
}
}
...
...
app/src/main/java/com/swiftcleaner/chovey/view/activity/StartActivity.java
View file @
16d805b5
...
...
@@ -29,6 +29,7 @@ import androidx.core.content.ContextCompat;
import
android.Manifest
;
import
android.animation.Animator
;
import
android.content.ActivityNotFoundException
;
import
android.content.Intent
;
import
android.content.SharedPreferences
;
import
android.content.pm.PackageManager
;
...
...
@@ -37,6 +38,7 @@ import android.os.Build;
import
android.os.Bundle
;
import
android.util.Log
;
import
android.view.View
;
import
android.widget.Toast
;
import
com.gyf.immersionbar.ImmersionBar
;
import
com.swiftcleaner.chovey.CleanApplication
;
...
...
@@ -50,6 +52,14 @@ import com.swiftcleaner.chovey.util.ActivityLauncher;
import
com.swiftcleaner.chovey.util.NonBlockingCountdown
;
import
com.swiftcleaner.chovey.util.SPUtils
;
import
com.swiftcleaner.chovey.view.MainActivity
;
import
com.swiftcleaner.chovey.view.activity.AppProcessActivity
;
import
com.swiftcleaner.chovey.view.activity.BatteryInfoActivity
;
import
com.swiftcleaner.chovey.view.activity.CleanJunkActivity
;
import
com.swiftcleaner.chovey.view.activity.InfoActivity
;
import
com.swiftcleaner.chovey.view.activity.LargeFileActivity
;
import
com.swiftcleaner.chovey.view.activity.ScreenShotActivity
;
import
com.swiftcleaner.chovey.view.activity.SimilarPhotosActivity
;
import
com.swiftcleaner.chovey.view.activity.WhatsAppActivity
;
import
com.swiftcleaner.chovey.view.dialog.NoticeDialog
;
import
java.util.Objects
;
...
...
@@ -259,13 +269,23 @@ public class StartActivity extends AppCompatActivity {
binding
.
userAgreement
.
setOnClickListener
(
v
->
{
Uri
uri
=
Uri
.
parse
(
"https://sites.google.com/view/terms-swf/terms"
);
Intent
intent
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri
);
startActivity
(
intent
);
try
{
startActivity
(
intent
);
}
catch
(
ActivityNotFoundException
e
)
{
e
.
printStackTrace
();
Toast
.
makeText
(
this
,
"No app can handle this action"
,
Toast
.
LENGTH_SHORT
).
show
();
}
});
binding
.
privacyPolicy
.
setOnClickListener
(
v
->
{
Uri
uri
=
Uri
.
parse
(
URL_PRIVACY
);
Intent
intent
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri
);
startActivity
(
intent
);
try
{
startActivity
(
intent
);
}
catch
(
ActivityNotFoundException
e
)
{
e
.
printStackTrace
();
Toast
.
makeText
(
this
,
"No app can handle this action"
,
Toast
.
LENGTH_SHORT
).
show
();
}
});
}
...
...
@@ -349,5 +369,7 @@ public class StartActivity extends AppCompatActivity {
binding
.
lottieAnimattionView
.
destroyDrawingCache
();
// 销毁缓存
}
nonBlockingCountdown
.
cancel
();
multiplePermissionsLauncher
=
null
;
notificationSettingsLauncher
=
null
;
}
}
\ No newline at end of file
app/src/main/java/com/swiftcleaner/chovey/view/activity/WhatsAppActivity.java
View file @
16d805b5
package
com
.
swiftcleaner
.
chovey
.
view
.
activity
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.core.app.ActivityCompat
;
import
androidx.core.content.ContextCompat
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
...
...
@@ -8,6 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import
android.Manifest
;
import
android.animation.ValueAnimator
;
import
android.app.Activity
;
import
android.content.ActivityNotFoundException
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.pm.PackageManager
;
...
...
@@ -32,6 +34,7 @@ import com.swiftcleaner.chovey.model.tool.ToastUtil;
import
com.swiftcleaner.chovey.model.util.AppSchedulers
;
import
com.swiftcleaner.chovey.model.util.FinishMain
;
import
com.swiftcleaner.chovey.view.BaseActivity
;
import
com.swiftcleaner.chovey.view.MainActivity
;
import
com.swiftcleaner.chovey.view.adapter.WhatsAppCleanAudioAdapter
;
import
com.swiftcleaner.chovey.view.adapter.WhatsAppCleanImageAdapter
;
import
com.swiftcleaner.chovey.view.adapter.WhatsAppCleanVideoAdapter
;
...
...
@@ -144,23 +147,43 @@ public class WhatsAppActivity extends BaseActivity<ActivityWhatsAppBinding> {
private
void
requestFilesAccessPermission
()
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
Intent
intent
=
new
Intent
(
Settings
.
ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
);
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
intent
.
setData
(
Uri
.
parse
(
"package:"
+
getPackageName
()));
startActivityForResult
(
intent
,
REQUEST_ALL_FILES_ACCESS_PERMISSION
);
try
{
Intent
intent
=
new
Intent
(
Settings
.
ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
);
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
intent
.
setData
(
Uri
.
parse
(
"package:"
+
getPackageName
()));
startActivityForResult
(
intent
,
REQUEST_ALL_FILES_ACCESS_PERMISSION
);
}
catch
(
ActivityNotFoundException
e
)
{
Toast
.
makeText
(
this
,
"Unable to request permission, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
else
{
// 在Android 10及以下版本,请求READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限
ActivityCompat
.
requestPermissions
(
this
,
new
String
[]{
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
},
REQUEST_PERMISSION_CODE
);
}
}
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
// 检查权限是否已经授予
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
if
(
Environment
.
isExternalStorageManager
())
{
// 权限已授予,刷新页面或执行相关操作
Intent
intent
=
new
Intent
(
this
,
MainActivity
.
class
);
startActivity
(
intent
);
finish
();
}
else
{
// 权限未授予,提示用户
Toast
.
makeText
(
this
,
"Permission not granted, please grant manually"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
}
}
@Override
public
void
onRequestPermissionsResult
(
int
requestCode
,
@NonNull
String
[]
permissions
,
@NonNull
int
[]
grantResults
)
{
super
.
onRequestPermissionsResult
(
requestCode
,
permissions
,
grantResults
);
if
(
requestCode
==
REQUEST_ALL_FILES_ACCESS_PERMISSION
)
{
if
(!
checkFilesAccessPermission
(
this
))
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
();
finish
();
}
}
else
if
(
requestCode
==
REQUEST_PERMISSION_CODE
)
{
...
...
@@ -168,7 +191,7 @@ public class WhatsAppActivity extends BaseActivity<ActivityWhatsAppBinding> {
// 权限已授予,可以继续操作
}
else
{
// 权限未授予,直接关闭页面
Toast
.
makeText
(
this
,
"
权限未授权,页面即将关闭
"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"
Unauthorized permission, the page is about to close
"
,
Toast
.
LENGTH_SHORT
).
show
();
finish
();
}
}
...
...
@@ -207,7 +230,7 @@ public class WhatsAppActivity extends BaseActivity<ActivityWhatsAppBinding> {
@Override
public
void
onClick
(
View
view
)
{
if
(
selectedSize
<
0
)
{
ToastUtil
.
showLongToast
(
WhatsAppActivity
.
this
,
"
请勾选要删除的文件
"
);
ToastUtil
.
showLongToast
(
WhatsAppActivity
.
this
,
"
Please check the file to be deleted
"
);
}
else
{
if
(
view
!=
null
)
{
onClickCleanUpButton
(
view
);
...
...
@@ -498,17 +521,21 @@ public class WhatsAppActivity extends BaseActivity<ActivityWhatsAppBinding> {
@Override
public
void
onSubmit
()
{
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
WhatsAppActivity
.
this
,
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
()
->
{
return
null
;
},
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
false
);
if
(
AdmobManager
.
INSTANCE
.
isShowAdBackInter
()){
AdmobManager
.
INSTANCE
.
showInterstitialAd
(
WhatsAppActivity
.
this
,
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
()
->
{
return
null
;
},
()
->
{
FinishMain
.
INSTANCE
.
finishToMain
(
activity
);
return
null
;
},
false
);
}
else
{
finish
();
}
}
});
customScoreDialog
.
show
();
...
...
app/src/main/java/com/swiftcleaner/chovey/view/adapter/AppInfoAdapter.java
View file @
16d805b5
...
...
@@ -50,8 +50,7 @@ public class AppInfoAdapter extends RecyclerView.Adapter<AppInfoAdapter.AppInfoV
Intent
intentUninstall
=
new
Intent
(
Intent
.
ACTION_DELETE
);
intentUninstall
.
setData
(
Uri
.
parse
(
"package:"
+
appInfoBean
.
getPackageName
()));
context
.
startActivity
(
intentUninstall
);
// appList.remove(position);
notifyDataSetChanged
();
appList
.
remove
(
appInfoBean
);
});
Glide
.
with
(
context
)
.
load
(
appInfoBean
.
getAppIcon
())
...
...
app/src/main/java/com/swiftcleaner/chovey/view/adapter/LargeFileAdapter.java
View file @
16d805b5
...
...
@@ -56,8 +56,8 @@ public class LargeFileAdapter extends RecyclerView.Adapter<LargeFileAdapter.View
Glide
.
with
(
holder
.
itemView
.
getContext
())
.
asBitmap
()
.
load
(
fileInfo
.
getPath
())
.
placeholder
(
R
.
mipmap
.
h_appmanager
)
.
error
(
R
.
mipmap
.
l_
other
)
.
placeholder
(
R
.
mipmap
.
l_tu
)
.
error
(
R
.
mipmap
.
l_
tu
)
.
apply
(
RequestOptions
.
bitmapTransform
(
new
RoundedCorners
(
20
)))
.
into
(
holder
.
img
);
// 设置图片图标或背景
...
...
@@ -65,8 +65,8 @@ public class LargeFileAdapter extends RecyclerView.Adapter<LargeFileAdapter.View
Glide
.
with
(
holder
.
itemView
.
getContext
())
.
asBitmap
()
.
load
(
fileInfo
.
getPath
())
.
placeholder
(
R
.
mipmap
.
h_appmanager
)
.
error
(
R
.
mipmap
.
l_
tu
)
.
placeholder
(
R
.
mipmap
.
l_shipin
)
.
error
(
R
.
mipmap
.
l_
shipin
)
.
apply
(
RequestOptions
.
bitmapTransform
(
new
RoundedCorners
(
20
)))
.
into
(
holder
.
img
);
// 设置视频图标或背景
...
...
@@ -74,8 +74,8 @@ public class LargeFileAdapter extends RecyclerView.Adapter<LargeFileAdapter.View
Glide
.
with
(
holder
.
itemView
.
getContext
())
.
asBitmap
()
.
load
(
fileInfo
.
getPath
())
.
placeholder
(
R
.
mipmap
.
h_appmanager
)
.
error
(
R
.
mipmap
.
l_shipin
)
.
placeholder
(
R
.
mipmap
.
w_audio
)
.
error
(
R
.
mipmap
.
w_audio
)
.
apply
(
RequestOptions
.
bitmapTransform
(
new
RoundedCorners
(
20
)))
.
into
(
holder
.
img
);
// 设置音频图标或背景
...
...
@@ -83,8 +83,8 @@ public class LargeFileAdapter extends RecyclerView.Adapter<LargeFileAdapter.View
Glide
.
with
(
holder
.
itemView
.
getContext
())
.
asBitmap
()
.
load
(
fileInfo
.
getPath
())
.
placeholder
(
R
.
mipmap
.
h_appmanager
)
.
error
(
R
.
mipmap
.
w_audio
)
.
placeholder
(
R
.
mipmap
.
l_doc
)
.
error
(
R
.
mipmap
.
l_doc
)
.
apply
(
RequestOptions
.
bitmapTransform
(
new
RoundedCorners
(
20
)))
.
into
(
holder
.
img
);
// 设置文档图标或背景
...
...
@@ -92,8 +92,8 @@ public class LargeFileAdapter extends RecyclerView.Adapter<LargeFileAdapter.View
Glide
.
with
(
holder
.
itemView
.
getContext
())
.
asBitmap
()
.
load
(
fileInfo
.
getPath
())
.
placeholder
(
R
.
mipmap
.
h_appmanager
)
.
error
(
R
.
mipmap
.
l_
doc
)
.
placeholder
(
R
.
mipmap
.
l_apk
)
.
error
(
R
.
mipmap
.
l_
apk
)
.
apply
(
RequestOptions
.
bitmapTransform
(
new
RoundedCorners
(
20
)))
.
into
(
holder
.
img
);
// 设置 APK 图标或背景
...
...
@@ -102,8 +102,8 @@ public class LargeFileAdapter extends RecyclerView.Adapter<LargeFileAdapter.View
Glide
.
with
(
holder
.
itemView
.
getContext
())
.
asBitmap
()
.
load
(
fileInfo
.
getPath
())
.
placeholder
(
R
.
mipmap
.
h_appmanag
er
)
.
error
(
R
.
mipmap
.
l_
apk
)
.
placeholder
(
R
.
mipmap
.
l_oth
er
)
.
error
(
R
.
mipmap
.
l_
other
)
.
apply
(
RequestOptions
.
bitmapTransform
(
new
RoundedCorners
(
20
)))
.
into
(
holder
.
img
);
}
...
...
app/src/main/res/layout/activity_large_file.xml
View file @
16d805b5
...
...
@@ -70,7 +70,6 @@
android:layout_marginHorizontal=
"16dp"
android:layout_marginTop=
"110dp"
android:layout_marginBottom=
"100dp"
android:background=
"@color/white"
android:overScrollMode=
"never"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment