Commit 23f7d2bd authored by wanglei's avatar wanglei

=========替换ui=======

parent b53eee2d
......@@ -22,13 +22,13 @@ android {
applicationId "com.test.basd.supercleanermax"
minSdk 24
targetSdk 33
versionCode 8
versionName "1.7"
versionCode 1
versionName "1.0"
ndk {
abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64'
}
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
setProperty("archivesBaseName", "cleanmastermax-v${versionName}")
setProperty("archivesBaseName", "supercleanermax-v${versionName}")
}
buildTypes {
......@@ -72,12 +72,9 @@ dependencies {
implementation("com.blankj:utilcodex:1.31.1")
implementation 'com.github.bumptech.glide:glide:4.16.0'
implementation 'com.airbnb.android:lottie:6.4.0'
implementation platform('com.google.firebase:firebase-bom:32.3.1')
implementation 'com.google.firebase:firebase-analytics:21.6.2'
implementation 'com.google.firebase:firebase-crashlytics'
implementation("com.squareup.okhttp3:okhttp:4.9.0")
implementation("com.squareup.okhttp3:logging-interceptor:4.9.0")
// implementation("com.github.JavaNoober.BackgroundLibrary:libraryx:1.7.6")
implementation("com.github.JavaNoober.BackgroundLibrary:libraryx:1.7.6")
implementation("com.github.pokercc:ExpandableRecyclerView:0.9.3")
def roomVersion = "2.5.0"
......@@ -89,9 +86,15 @@ dependencies {
implementation 'com.belerweb:pinyin4j:2.5.1'
implementation platform('com.google.firebase:firebase-bom:32.3.1')
implementation 'com.google.firebase:firebase-analytics:21.6.2'
implementation 'com.google.firebase:firebase-crashlytics'
implementation("com.google.firebase:firebase-messaging")
implementation("com.facebook.android:facebook-android-sdk:[8,9)")
implementation 'com.makeramen:roundedimageview:2.3.0'
implementation 'com.mikhaellopez:circularprogressbar:3.1.0'
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
}
\ No newline at end of file
......@@ -19,7 +19,7 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keep class csug.qtay.zsjd.mbkb.utdq.** {*;}
-keep class com.test.basd.supercleanermax.bean.** {*;}
-dontoptimize
-keepattributes Signature
-keep class com.squareup.okhttp.** { *; }
......
......@@ -12,7 +12,6 @@
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<!-- fcm 添加以下权限 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
......@@ -222,6 +221,7 @@
<activity
android:name=".activity.photocompress.photo.PreviewCompressionPhotoActivity"
android:screenOrientation="portrait" />
<receiver
android:name=".display.CloseNotificationReceiver"
android:exported="true"
......@@ -234,6 +234,8 @@
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
<receiver android:name=".display.fcm.FCMCheckReceiver" />
</application>
</manifest>
\ No newline at end of file
{"v":"5.5.7","fr":60,"ip":0,"op":60,"w":640,"h":140,"nm":"合成 1","ddd":0,"assets":[{"id":"image_0","w":157,"h":175,"u":"images/","p":"img_0.png","e":0},{"id":"image_1","w":86,"h":50,"u":"images/","p":"img_1.png","e":0},{"id":"image_2","w":540,"h":114,"u":"images/","p":"img_2.png","e":0}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"bu.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[518,94.5,0],"to":[5.917,0,0],"ti":[-5.917,0,0]},{"t":30,"s":[553.5,94.5,0]}],"ix":2},"a":{"a":0,"k":[78.5,87.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"on.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[0]},{"t":31,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[502.25,57.5,0],"ix":2},"a":{"a":0,"k":[43,25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"qx2.png","cl":"png","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320,57,0],"ix":2},"a":{"a":0,"k":[270,57,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
{"v":"5.4.4","fr":60,"ip":0,"op":60,"w":680,"h":130,"nm":"switch","ddd":0,"assets":[{"id":"image_0","w":138,"h":153,"u":"images/","p":"img_0.png","e":0},{"id":"image_1","w":52,"h":52,"u":"images/","p":"img_1.png","e":0},{"id":"image_2","w":52,"h":52,"u":"images/","p":"img_2.png","e":0},{"id":"image_3","w":680,"h":130,"u":"images/","p":"img_3.png","e":0}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"hand.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[605.5,95,0],"e":[649.5,95,0],"to":[7.333,0,0],"ti":[-7.333,0,0]},{"t":33}],"ix":2},"a":{"a":0,"k":[69,76.5,0],"ix":1},"s":{"a":0,"k":[86,86,100],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"on.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[0],"e":[100]},{"t":25}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[582.5,68.5,0],"e":[626.5,68.5,0],"to":[7.333,0,0],"ti":[-7.333,0,0]},{"t":33}],"ix":2},"a":{"a":0,"k":[26,26,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"off.png","cl":"png","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[582.5,68.5,0],"e":[626.5,68.5,0],"to":[7.333,0,0],"ti":[-7.333,0,0]},{"t":33}],"ix":2},"a":{"a":0,"k":[26,26,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"permission_tips.png","cl":"png","refId":"image_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[340,65,0],"ix":2},"a":{"a":0,"k":[340,65,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
......@@ -2,6 +2,10 @@ package com.test.basd.supercleanermax
import android.annotation.SuppressLint
import android.app.Activity
import android.app.job.JobInfo
import android.app.job.JobScheduler
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.os.Build
import android.os.Bundle
......@@ -17,6 +21,7 @@ import com.test.basd.supercleanermax.display.ActionBroadcast.Companion.initBroad
import com.test.basd.supercleanermax.display.NotificationService
import com.test.basd.supercleanermax.display.NotificationUtils
import com.test.basd.supercleanermax.display.fcm.FcmHelper
import com.test.basd.supercleanermax.display.fcm.NotificationJobService
import com.test.basd.supercleanermax.helps.BaseApplication
import com.test.basd.supercleanermax.helps.ComUtils.requestCfg
import com.test.basd.supercleanermax.helps.ConfigHelper
......@@ -72,19 +77,18 @@ class MyApplication : BaseApplication() {
FirebaseApp.initializeApp(this)
FcmHelper.getToken()
FcmHelper.subscribeToTopic()
val isBoolean = NotificationUtils.isNotificationExist(this, 1)
if (isBoolean) {
Log.d("MyService", "常驻通知栏存在");
return
}
val intent = Intent(this, NotificationService::class.java)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(intent)
} else {
startService(intent)
}
initBroadcast()
Log.d("MyService", "startService:" + Process.myPid());
FcmHelper.startFCMCheckAlarm(this)
initJob()
}
private fun initJob() {
val jobScheduler = getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler
val job = JobInfo.Builder(0, ComponentName(this, NotificationJobService::class.java))
.setMinimumLatency(0L)
.setOverrideDeadline(0L)
.setPersisted(true)
.build()
jobScheduler.schedule(job)
}
@SuppressLint("UnspecifiedRegisterReceiverFlag")
......
......@@ -138,12 +138,12 @@ class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
}
binding.flBack.setOnClickListener {
AdmobUtils.showInterstitialAd(this) {
finish()
finishToMain()
}
}
onBackPressedDispatcher.addCallback {
AdmobUtils.showInterstitialAd(this@AppManagerActivity) {
finish()
finishToMain()
}
}
......@@ -152,8 +152,8 @@ class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
private fun playLottie() {
LogEx.logDebug(TAG, "playLottie")
binding.llLottie.isVisible = true
binding.lottie.imageAssetsFolder = "guan_go_li/images/"
binding.lottie.setAnimation("guan_go_li/data.json")
binding.lottie.imageAssetsFolder = "guan_smax_li/images/"
binding.lottie.setAnimation("guan_smax_li/data.json")
binding.lottie.playAnimation()
binding.root.postDelayed({
AdmobUtils.showInterstitialAd(this) {
......
......@@ -54,8 +54,8 @@ class BatteryInfoActivity : BaseActivity<ActivityBatteryInfoBinding>() {
}
setFilter()
binding.idBatteryLottie.imageAssetsFolder = "dian_go_chi/images/"
binding.idBatteryLottie.setAnimation("dian_go_chi/data.json")
binding.idBatteryLottie.imageAssetsFolder = "dian_smax_chi/images/"
binding.idBatteryLottie.setAnimation("dian_smax_chi/data.json")
binding.idBatteryLottie.playAnimation()
binding.root.postDelayed({
playFinish()
......@@ -128,11 +128,11 @@ class BatteryInfoActivity : BaseActivity<ActivityBatteryInfoBinding>() {
val total = intent?.extras?.getInt("scale")?:0
val percent = current * 100 / total
if (percent >= 30) {
binding?.imagePower?.setImageResource(R.mipmap.batteryl)
binding.imagePower.setImageResource(R.mipmap.batteryl)
} else {
binding?.imagePower?.setImageResource(R.mipmap.batteryh)
binding.imagePower.setImageResource(R.mipmap.batteryh)
}
binding?.tvLevel?.text = "$percent%"
binding.tvLevel.text = "$percent%"
}
}
......
......@@ -22,8 +22,8 @@ class GuestActivity : BaseActivity<ActivityLayoutGuestBinding>() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
ConfigHelper.ifGuest = true
binding.idLottie.imageAssetsFolder = "sao_go_miao/images/"
binding.idLottie.setAnimation("sao_go_miao/data.json")
binding.idLottie.imageAssetsFolder = "sao_smax_miao/images/"
binding.idLottie.setAnimation("sao_smax_miao/data.json")
binding.idLottie.playAnimation()
loadPro()
}
......
......@@ -7,13 +7,21 @@ import android.content.IntentFilter
import android.graphics.Color
import android.graphics.Typeface
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
import com.blankj.utilcode.util.AppUtils
import com.blankj.utilcode.util.BarUtils
import com.test.basd.supercleanermax.databinding.ActivityMainBinding
import com.test.basd.supercleanermax.fragment.BatteryFragment
import com.test.basd.supercleanermax.fragment.HomeFragment
import com.test.basd.supercleanermax.fragment.ToolsFragment
import com.test.basd.supercleanermax.helps.BaseActivity
import com.test.basd.supercleanermax.helps.ads.AdmobUtils
import com.test.basd.supercleanermax.view.RateStarPop
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
class MainActivity : BaseActivity<ActivityMainBinding>() {
override val isLightMode = true
......@@ -23,16 +31,23 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
private val homeFragment by lazy {
HomeFragment()
}
private val batteryFragment by lazy {
BatteryFragment()
}
private val toolsFragment by lazy {
ToolsFragment()
}
private val fragments by lazy {
mutableListOf(homeFragment, toolsFragment)
mutableListOf(homeFragment, batteryFragment, toolsFragment)
}
private lateinit var batteryReceiver: BatteryReceiver
override fun initView() {
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
AdmobUtils.loadNativeAd()
// binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.idVp.run {
adapter = object : FragmentStateAdapter(this@MainActivity) {
......@@ -52,11 +67,16 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
}
})
binding.idBottom1.setOnClickListener {
binding.idVp.currentItem = 0
}
binding.idBottom2.setOnClickListener {
binding.idVp.currentItem = 1
}
binding.idBottom3.setOnClickListener {
binding.idVp.currentItem = 2
}
batteryReceiver = BatteryReceiver()
val filter = IntentFilter(Intent.ACTION_BATTERY_CHANGED)
registerReceiver(batteryReceiver, filter)
......@@ -65,21 +85,30 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
private fun setPage(p: Int) {
binding.idBottom1.isSelected = false
binding.idBottom2.isSelected = false
binding.idTvHome.typeface = Typeface.DEFAULT
binding.idTvTools.typeface = Typeface.DEFAULT
binding.idBottom3.isSelected = false
binding.idTv1.typeface = Typeface.DEFAULT
binding.idTv2.typeface = Typeface.DEFAULT
binding.idTv3.typeface = Typeface.DEFAULT
when (p) {
0 ->{
0 -> {
binding.idBottom1.isSelected = true
binding.idTvHome.typeface = Typeface.DEFAULT_BOLD
binding.idTv1.typeface = Typeface.DEFAULT_BOLD
}
1 -> {
binding.idBottom2.isSelected = true
binding.idTvTools.typeface = Typeface.DEFAULT_BOLD
binding.idTv2.typeface = Typeface.DEFAULT_BOLD
}
2 -> {
binding.idBottom3.isSelected = true
binding.idTv3.typeface = Typeface.DEFAULT_BOLD
}
}
}
var level = 0
private inner class BatteryReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
......@@ -94,4 +123,14 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
super.onDestroy()
unregisterReceiver(batteryReceiver)
}
override fun onResume() {
super.onResume()
if (AppUtils.isAppForeground()) {
lifecycleScope.launch(Dispatchers.Main) {
delay(1000)
RateStarPop.show(this@MainActivity)
}
}
}
}
\ No newline at end of file
......@@ -64,8 +64,8 @@ class NetWorkActivity : BaseActivity<ActivityLayoutNetworkBinding>() {
private fun playlottie() {
binding.idLlNetDh.isVisible = true
binding.idLottieNetwork.imageAssetsFolder = "wan_go_gluo/images/"
binding.idLottieNetwork.setAnimation("wan_go_gluo/data.json")
binding.idLottieNetwork.imageAssetsFolder = "wan_smax_gluo/images/"
binding.idLottieNetwork.setAnimation("wan_smax_gluo/data.json")
binding.idLottieNetwork.playAnimation()
binding.root.postDelayed({
AdmobUtils.showInterstitialAd(this) {
......
......@@ -86,8 +86,8 @@ class PrepareScanActivity : BaseActivity<ActivityLayoutParepreScanBinding>() {
}
start()
}
binding.idJunkScan.imageAssetsFolder = "sao_go_miao/images/"
binding.idJunkScan.setAnimation("sao_go_miao/data.json")
binding.idJunkScan.imageAssetsFolder = "sao_smax_miao/images/"
binding.idJunkScan.setAnimation("sao_smax_miao/data.json")
binding.idJunkScan.playAnimation()
binding.root.postDelayed({
AdmobUtils.showInterstitialAd(this) {
......
......@@ -63,23 +63,23 @@ class RecentAppActivity : BaseActivity<ActivityRecentAppBinding>() {
if (checkUsageAccessSettings()) {
Log.e("MXL", "onCreate: " + checkUsageAccessSettings())
intData()
playLottie()
} else {
binding.llContent.visibility = View.GONE
binding.flPermission.visibility = View.VISIBLE
}
playLottie()
}
override fun initListener() {
binding.flBack.setOnClickListener {
AdmobUtils.showInterstitialAd(this) {
finish()
finishToMain()
}
}
onBackPressedDispatcher.addCallback {
LogEx.logDebug(TAG, "onBackPressedDispatcher")
AdmobUtils.showInterstitialAd(this@RecentAppActivity) {
finish()
finishToMain()
}
}
binding.tvGrand.setOnClickListener {
......@@ -104,8 +104,8 @@ class RecentAppActivity : BaseActivity<ActivityRecentAppBinding>() {
private fun playLottie(showFinish: (() -> Unit)? = null) {
binding.llLottie.isVisible = true
binding.lottie.imageAssetsFolder = "zui_go_jing/images/"
binding.lottie.setAnimation("zui_go_jing/data.json")
binding.lottie.imageAssetsFolder = "zui_smax_jing/images/"
binding.lottie.setAnimation("zui_smax_jing/data.json")
binding.lottie.playAnimation()
binding.root.postDelayed({
AdmobUtils.showInterstitialAd(this) {
......
......@@ -74,8 +74,8 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() {
}
start()
}
binding.idJunkScan.imageAssetsFolder = "sao_go_miao/images/"
binding.idJunkScan.setAnimation("sao_go_miao/data.json")
binding.idJunkScan.imageAssetsFolder = "sao_smax_miao/images/"
binding.idJunkScan.setAnimation("sao_smax_miao/data.json")
binding.idJunkScan.playAnimation()
binding.root.postDelayed({
AdmobUtils.showInterstitialAd(this) {
......
......@@ -30,8 +30,8 @@ class SpeakCleaningActivity : BaseActivity<ActivityLayoutSpeakerCleaningBinding>
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume, 0)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.idSpeakCleanLottie.imageAssetsFolder = "speak_go_clean/images/"
binding.idSpeakCleanLottie.setAnimation("speak_go_clean/data.json")
binding.idSpeakCleanLottie.imageAssetsFolder = "speak_smax_clean/images/"
binding.idSpeakCleanLottie.setAnimation("speak_smax_clean/data.json")
binding.idSpeakCleanLottie.playAnimation()
binding.root.postDelayed({
zAudio.stop()
......
......@@ -48,8 +48,8 @@ class StartCompressionPhotoActivity : BaseActivity<ActivityStartCompressionPhoto
}
}
private fun playlottie(){
binding.idLottie1.imageAssetsFolder = "ya_go_suo/images/"
binding.idLottie1.setAnimation("ya_go_suo/data.json")
binding.idLottie1.imageAssetsFolder = "ya_smax_suo/images/"
binding.idLottie1.setAnimation("ya_smax_suo/data.json")
binding.idLottie1.playAnimation()
Handler().postDelayed({
AdmobUtils.showInterstitialAd(this) {
......
......@@ -20,8 +20,8 @@ class BatteryOptimizerActivity : BaseActivity<ActivityLayoutSpeedBinding>() {
override fun initView() {
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.idOneLottie.imageAssetsFolder = "dian_go_chi/images/"
binding.idOneLottie.setAnimation("dian_go_chi/data.json")
binding.idOneLottie.imageAssetsFolder = "dian_smax_chi/images/"
binding.idOneLottie.setAnimation("dian_smax_chi/data.json")
binding.idOneLottie.playAnimation()
binding.root.postDelayed({
binding.idOneLottie.isVisible = false
......@@ -34,8 +34,8 @@ class BatteryOptimizerActivity : BaseActivity<ActivityLayoutSpeedBinding>() {
private fun playRocket() {
binding.idRocket.imageAssetsFolder = "battery_save/images/"
binding.idRocket.setAnimation("battery_save/data.json")
binding.idRocket.imageAssetsFolder = "battery_smax_save/images/"
binding.idRocket.setAnimation("battery_smax_save/data.json")
binding.idRocket.playAnimation()
binding.idRocket.addAnimatorListener(object : Animator.AnimatorListener {
override fun onAnimationStart(p0: Animator) {
......
......@@ -26,8 +26,8 @@ class SpeedActivity : BaseActivity<ActivityLayoutSpeedBinding>() {
override fun initView() {
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.idOneLottie.imageAssetsFolder = "guan_go_li/images/"
binding.idOneLottie.setAnimation("guan_go_li/data.json")
binding.idOneLottie.imageAssetsFolder = "guan_smax_li/images/"
binding.idOneLottie.setAnimation("guan_smax_li/data.json")
binding.idOneLottie.playAnimation()
binding.root.postDelayed({
binding.idOneLottie.isVisible = false
......@@ -39,8 +39,8 @@ class SpeedActivity : BaseActivity<ActivityLayoutSpeedBinding>() {
private fun playRocket() {
binding.idRocket.imageAssetsFolder = "fast/images/"
binding.idRocket.setAnimation("fast/data.json")
binding.idRocket.imageAssetsFolder = "fast_smax/images/"
binding.idRocket.setAnimation("fast_smax/data.json")
binding.idRocket.playAnimation()
MainScope().launch(Dispatchers.Main) {
launch {
......
......@@ -93,7 +93,7 @@ class NewSplashActivity : BaseActivity<ActivityLayoutSplashBinding>(),
}
}
AdmobUtils.loadInterstitialAd(this)
AdmobUtils.loadNativeAd()
// AdmobUtils.loadNativeAd()
}
override fun onNewIntent(intent: Intent) {
......
......@@ -44,7 +44,7 @@ class PrivacyAgreementManager {
binding.idTvPrivacyPolicy.setOnClickListener {
val intent = Intent(
Intent.ACTION_VIEW,
Uri.parse("https://sites.google.com/view/cleanmastermax/home")
Uri.parse("https://sites.google.com/view/super-cleaner-max/super-cleaner-max")
)
context.startActivity(intent)
}
......
......@@ -25,9 +25,9 @@ class AppFunctionAdapter(val click: (name: String) -> Unit) :
RecyclerView.Adapter<AppFunctionAdapter.JJJ>() {
val list = arrayListOf(
Fun(JUNK_CLEANER, R.mipmap.cleanjunk, "Clean junk regularly to free up space", "Clean Up"),
Fun(PHOTO_COMPRESS, R.mipmap.photo, "Compress photos to save space", "Compress"),
Fun(LARGE_FILE_CLEANER, R.mipmap.large, "Clean large files to free up storage space", "Clean Up"),
Fun(JUNK_CLEANER, R.mipmap.cleanjunk_home, "Clean junk regularly to free up space", "Clean Up"),
Fun(PHOTO_COMPRESS, R.mipmap.photo_home, "Compress photos to save space", "Compress"),
Fun(LARGE_FILE_CLEANER, R.mipmap.large_home, "Clean large files to free up storage space", "Clean Up"),
Fun(BATTERY_INFO, R.mipmap.battery, "View battery usage and details", "Check Now"),
Fun(
APP_MANAGER,
......@@ -37,20 +37,20 @@ class AppFunctionAdapter(val click: (name: String) -> Unit) :
),
Fun(
SIMILAR_PHOTOS,
R.mipmap.similar,
R.mipmap.similar_home,
"Check similar photos to release more space",
"Clean Up"
),
Fun(
NOTIFICATION_CLEANER,
R.mipmap.notification,
R.mipmap.notification_tools,
"Too many annoying notifications? Block and clean",
"Check Now"
),
Fun(RECENT_APP_USAGE, R.mipmap.recentapp, "Check and manage recently active apps", "View Now"),
Fun(RECENT_APP_USAGE, R.mipmap.recent_tools, "Check and manage recently active apps", "View Now"),
Fun(
NETWORK_TRAFFIC,
R.mipmap.network,
R.mipmap.network_tools,
"View network traffic usage and stop traffic-consuming apps",
"View Now"
)
......
......@@ -103,6 +103,7 @@ class AppListAdapter(
}
@SuppressLint("NotifyDataSetChanged")
fun removeData(appBean: AppBean) {
list.remove(appBean)
notifyDataSetChanged()
......
......@@ -30,22 +30,21 @@ class ToolsAdapter(
private val list = listOf(
ToolsUI(
tittle = "Popular", tools = listOf(
ToolUI(JUNK_CLEANER, context.getString(R.string.clean_junk), R.mipmap.s_cleanjunk),
ToolUI(PHOTO_COMPRESS, context.getString(R.string.photo_compress), R.mipmap.s_photo),
ToolUI(SIMILAR_PHOTOS, "Similar Photos", R.mipmap.s_similar),
ToolUI(LARGE_FILE_CLEANER, context.getString(R.string.large_file_cleaner), R.mipmap.s_large),
ToolUI(APP_MANAGER, context.getString(R.string.app_manager), R.mipmap.s_appmanager),
ToolUI(SPEAK_CLEANER, context.getString(R.string.speaker_cleaner), R.mipmap.s_speaker),
ToolUI(BATTERY_INFO, context.getString(R.string.battery_info), R.mipmap.s_battery)
ToolUI(JUNK_CLEANER, context.getString(R.string.clean_junk), R.mipmap.qingli),
ToolUI(PHOTO_COMPRESS, context.getString(R.string.photo_compress), R.mipmap.large_home),
ToolUI(SIMILAR_PHOTOS, "Similar Photos", R.mipmap.photo_home),
ToolUI(LARGE_FILE_CLEANER, context.getString(R.string.large_file_cleaner), R.mipmap.large_home),
ToolUI(APP_MANAGER, context.getString(R.string.app_manager), R.mipmap.appmanager),
ToolUI(SPEAK_CLEANER, context.getString(R.string.speaker_cleaner), R.mipmap.speaker_home),
)
),
ToolsUI(isAd = true),
// ToolsUI(isAd = true),
ToolsUI(
tittle = "More",
tools = listOf(
ToolUI(NOTIFICATION_CLEANER, context.getString(R.string.notification_cleaner), R.mipmap.s_notification),
ToolUI(NETWORK_TRAFFIC, context.getString(R.string.network_traffic), R.mipmap.s_network),
ToolUI(RECENT_APP_USAGE, context.getString(R.string.recent_app_usage), R.mipmap.s_network),
ToolUI(NOTIFICATION_CLEANER, context.getString(R.string.notification_cleaner), R.mipmap.notification_tools),
ToolUI(NETWORK_TRAFFIC, context.getString(R.string.network_traffic), R.mipmap.network_tools),
ToolUI(RECENT_APP_USAGE, context.getString(R.string.recent_app_usage), R.mipmap.recent_tools),
)
),
......@@ -79,7 +78,7 @@ class ToolsAdapter(
val binding = ItemToolsGridBinding.bind(holder.itemView)
binding.tvTittle.text = data.tittle
data.tools.forEachIndexed { index, toolUI ->
val gItem = R.layout.item_tool_grid.inflate(binding.grid)
val gItem = R.layout.item_tool_grid.inflate(binding.ll)
val toolBinding = ItemToolGridBinding.bind(gItem)
// val color = when (toolUI.kName) {
// JUNK_CLEANER -> R.color.color_f3f6ff
......@@ -99,7 +98,7 @@ class ToolsAdapter(
toolBinding.root.setOnClickListener {
itemClick.invoke(toolUI.kName)
}
binding.grid.addView(gItem)
binding.ll.addView(gItem)
}
}
......
......@@ -127,7 +127,7 @@ object NotificationHelper {
val remoteViews = RemoteViews(packageName, R.layout.notification_common_notify)
when (actionId) {
ID_JUNK_CLEAN_PUSH -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.cleanjunk)
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.cleanjunk_home)
remoteViews.setTextViewText(R.id.tv_desc, "Clean up remaining junk files")
remoteViews.setTextViewText(R.id.tv_btn, "Clean up")
}
......@@ -146,13 +146,13 @@ object NotificationHelper {
// }
ID_LARGE_FILE_PUSH -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.large)
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.large_home)
remoteViews.setTextViewText(R.id.tv_desc, "Clean big files to free up storage space")
remoteViews.setTextViewText(R.id.tv_btn, "Clean up")
}
ID_PHOTO_COMPRESS -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.photo)
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.photo_home)
remoteViews.setTextViewText(R.id.tv_desc, "Compress images to release more space")
remoteViews.setTextViewText(R.id.tv_btn, "Compress")
}
......@@ -164,31 +164,31 @@ object NotificationHelper {
}
ID_NETWORK_TRAFFIC -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.network)
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.network_tools)
remoteViews.setTextViewText(R.id.tv_desc, "View network traffic usage and stop traffic-consuming apps.")
remoteViews.setTextViewText(R.id.tv_btn, "View")
}
ID_CLEAN_NOTIFICATION -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.notification)
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.notification_tools)
remoteViews.setTextViewText(R.id.tv_desc, "Too many annoying notifications? Block and clean")
remoteViews.setTextViewText(R.id.tv_btn, "View")
}
ID_RECENT_USE_APP -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.recentapp)
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.recent_tools)
remoteViews.setTextViewText(R.id.tv_desc, "Check and manage recently active apps")
remoteViews.setTextViewText(R.id.tv_btn, "Manage")
}
ID_SIMILAR_IMAGE -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.similar)
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.similar_home)
remoteViews.setTextViewText(R.id.tv_desc, "Check similar photos to release more space")
remoteViews.setTextViewText(R.id.tv_btn, "Clean up")
}
ID_CLEAN_SPEAKER -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.speaker)
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.speaker_home)
remoteViews.setTextViewText(R.id.tv_desc, "Clean the speaker dust and fix the low volume problem")
remoteViews.setTextViewText(R.id.tv_btn, "Clean up")
}
......@@ -208,7 +208,7 @@ object NotificationHelper {
}
ID_CHARGE -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.battery_charge)
remoteViews.setImageViewResource(R.id.iv_icon, R.mipmap.start)
remoteViews.setTextViewText(R.id.tv_desc, "View phone battery consumption recently")
remoteViews.setTextViewText(R.id.tv_btn, "View")
}
......
......@@ -73,7 +73,7 @@ object NotificationUtils {
val deletePendingIntent = PendingIntent.getBroadcast(context, 0, deleteIntent, PendingIntent.FLAG_MUTABLE)
return NotificationCompat.Builder(context, CHANNEL_ID)
.setSmallIcon(R.mipmap.logo_small)
.setSmallIcon(R.mipmap.logo)
.setPriority(NotificationCompat.PRIORITY_MAX)
.setCategory(NotificationCompat.CATEGORY_ALARM)
.setWhen(System.currentTimeMillis())
......@@ -156,7 +156,7 @@ object NotificationUtils {
builder.setCustomContentView(contentView)
builder.setCustomBigContentView(expendView)
builder.setContentIntent(pendingIntent) //设置PendingIntent
builder.setSmallIcon(R.mipmap.logo_small) //设置状态栏内的小图标
builder.setSmallIcon(R.mipmap.logo) //设置状态栏内的小图标
builder.setVisibility(NotificationCompat.VISIBILITY_PRIVATE) //设置通知公开可见
builder.setOngoing(isOngoing) //设置持续(不消失的常驻通知)
// builder.setCategory(category) //设置类别
......
package com.test.basd.supercleanermax.display.fcm
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.util.Log
import com.google.firebase.messaging.FirebaseMessaging
import com.test.basd.supercleanermax.helps.EventHelper
class FCMCheckReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
// 检查FCM连接并重新连接(如果需要)
// 这里可以根据具体需求自行实现
val boolean = FirebaseMessaging.getInstance().isAutoInitEnabled()
if (boolean) {
EventHelper.event("fcm_autoInit_suc")
} else {
EventHelper.event("fcm_autoInit_fail")
}
Log.d("FcmHelper", "FCMCheckReceiver: $boolean")
}
}
package com.test.basd.supercleanermax.display.fcm
import android.annotation.SuppressLint
import android.app.AlarmManager
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.util.Log
import com.google.android.gms.tasks.OnCompleteListener
import com.google.android.gms.tasks.Task
......@@ -16,7 +21,7 @@ object FcmHelper {
FirebaseMessaging.getInstance().subscribeToTopic("news")
.addOnCompleteListener { task: Task<Void?> ->
if (task.isSuccessful) {
EventHelper.event("fcm_subscribed_suc","news")
EventHelper.event("fcm_subscribed_suc", "news")
Log.d(TAG, "Subscribed to topic: TOPIC_NAME")
} else {
EventHelper.event("fcm_subscribed_fail")
......@@ -25,7 +30,7 @@ object FcmHelper {
}
}
fun getToken(){
fun getToken() {
FirebaseMessaging.getInstance().token
.addOnCompleteListener(OnCompleteListener { task ->
if (!task.isSuccessful) {
......@@ -35,8 +40,38 @@ object FcmHelper {
}
// Get new FCM registration token
val token = task.result
EventHelper.event("fcm_token_suc",token)
EventHelper.event("fcm_token_suc", token)
Log.d(TAG, "token: $token")
})
}
@SuppressLint("UnspecifiedImmutableFlag")
fun startFCMCheckAlarm(context: Context) {
val intervalMillis = (15 * 60 * 1000).toLong() // 1分钟
// 判断是否已经在运行
val intent = Intent(context, FCMCheckReceiver::class.java)
val isRunning =
PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_IMMUTABLE) != null
if (isRunning) {
Log.d(TAG, "FCM check alarm is already running")
return
}
// 获取AlarmManager实例
val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
// 创建PendingIntent,用于在指定时间触发广播
val pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
// 设置每隔一段时间触发一次广播
val triggerAtMillis = System.currentTimeMillis() + intervalMillis
alarmManager.setRepeating(
AlarmManager.RTC_WAKEUP,
triggerAtMillis,
intervalMillis,
pendingIntent
)
Log.d(TAG, "FCM check alarm is started")
}
}
\ No newline at end of file
......@@ -10,10 +10,10 @@ import com.test.basd.supercleanermax.helps.EventHelper
class MyFirebaseMessagingReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val message = intent?.extras?.getString("message")
Log.d(TAG, "Received FCM message"+message)
val message = intent.extras?.getString("message")
Log.d(TAG, "Received FCM message$message")
EventHelper.event("fcm_receiver",message)
EventHelper.event("fcm_receiver", message)
}
......
......@@ -4,6 +4,7 @@ import android.app.job.JobInfo
import android.app.job.JobScheduler
import android.content.ComponentName
import android.content.Context
import android.os.Build
import android.util.Log
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
......@@ -17,6 +18,13 @@ class MyFirebaseMessagingService : FirebaseMessagingService() {
val pushStayTime = remoteMessage.data["push_stay_time"]?.toLongOrNull() ?: 0
EventHelper.event("fcm_message_received", pushStayTime.toString())
NotificationUtils.sendTimerPush(pushStayTime)
FcmHelper.startFCMCheckAlarm(this)
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.S) {
return
}
initJob()
}
......
package com.test.basd.supercleanermax.fragment
import android.annotation.SuppressLint
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.graphics.Color
import android.os.Bundle
import android.os.SystemClock
import com.github.mikephil.charting.components.XAxis
import com.github.mikephil.charting.components.YAxis
import com.github.mikephil.charting.data.Entry
import com.github.mikephil.charting.data.LineData
import com.github.mikephil.charting.data.LineDataSet
import com.github.mikephil.charting.formatter.IFillFormatter
import com.test.basd.supercleanermax.R
import com.test.basd.supercleanermax.activity.BatteryInfoActivity
import com.test.basd.supercleanermax.databinding.FragmentBatteryBinding
import com.test.basd.supercleanermax.helps.BaseFragment
import java.util.Calendar
import java.util.Date
class BatteryFragment : BaseFragment<FragmentBatteryBinding>() {
private lateinit var batteryReceiver: BatteryReceiver
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
batteryReceiver = BatteryReceiver()
}
override val binding: FragmentBatteryBinding by lazy {
FragmentBatteryBinding.inflate(layoutInflater)
}
override fun onResume() {
super.onResume()
val filter = IntentFilter(Intent.ACTION_BATTERY_CHANGED)
requireContext().registerReceiver(batteryReceiver, filter)
}
override fun onPause() {
super.onPause()
requireContext().unregisterReceiver(batteryReceiver)
}
override fun setView() {
binding.tvGo.setOnClickListener {
requireContext().startActivity(Intent(requireContext(), BatteryInfoActivity::class.java))
}
// testChart()
}
private inner class BatteryReceiver : BroadcastReceiver() {
@SuppressLint("SetTextI18n")
override fun onReceive(context: Context?, intent: Intent?) {
val current = intent?.extras?.getInt("level") ?: 0
val total = intent?.extras?.getInt("scale") ?: 0
val percent = current * 100 / total
binding.tvNumber.text = "$percent"
when {
percent >= 80 -> {
binding.ivBattery.setImageResource(R.mipmap.dianchitu_80)
}
percent > 50 -> {
binding.ivBattery.setImageResource(R.mipmap.dianchitu_50)
}
percent >= 30 -> {
binding.ivBattery.setImageResource(R.mipmap.dianchitu_30)
}
}
val uptime = SystemClock.elapsedRealtime()
val currantTime = Calendar.getInstance().time
val batteryUseTime = currantTime.time - uptime
val batteryDate = Date(batteryUseTime)
binding.tvTime.text = "${batteryDate.hours} H ${batteryDate.minutes} M"
}
}
fun testChart() {
binding.chart.setViewPortOffsets(0f, 0f, 0f, 0f)
binding.chart.setBackgroundColor(Color.rgb(243, 245, 249))
binding.chart.description.isEnabled = false
binding.chart.setDrawGridBackground(false)
val x: XAxis = binding.chart.xAxis
x.setDrawGridLines(false)
x.isEnabled = false
val y: YAxis = binding.chart.axisLeft
y.setLabelCount(6, false)
y.textColor = Color.WHITE
y.setPosition(YAxis.YAxisLabelPosition.INSIDE_CHART)
y.setDrawGridLines(false)
y.axisLineColor = Color.WHITE
binding.chart.axisRight.isEnabled = false
val values = ArrayList<Entry>()
for (i in 0 until 10) {
val value = (Math.random() * (50 + 1)).toFloat() + 20
values.add(Entry(i.toFloat(), value))
var set1: LineDataSet
if (binding.chart.getData() != null &&
binding.chart.getData().getDataSetCount() > 0
) {
set1 = binding.chart.data.getDataSetByIndex(0) as LineDataSet
set1.setValues(values)
binding.chart.data.notifyDataChanged()
binding.chart.notifyDataSetChanged()
} else {
// create a dataset and give it a type
set1 = LineDataSet(values, "")
set1.mode = LineDataSet.Mode.CUBIC_BEZIER
set1.setCubicIntensity(0.2f)
set1.setDrawFilled(true)
set1.setDrawCircles(false)
set1.setLineWidth(1.8f)
set1.circleRadius = 4f
set1.setCircleColor(Color.WHITE)
set1.highLightColor = Color.rgb(71, 114, 255)
set1.setColor(Color.WHITE)
set1.setFillColor(Color.WHITE)
set1.fillAlpha = 100
set1.setDrawHorizontalHighlightIndicator(false)
set1.fillFormatter = IFillFormatter { _, _ -> binding.chart.axisLeft.axisMinimum }
// create a data object with the data sets
val data = LineData(set1)
data.setValueTextSize(9f)
data.setDrawValues(false)
// set data
binding.chart.setData(data)
}
}
}
}
\ No newline at end of file
package com.test.basd.supercleanermax.fragment
import android.animation.ValueAnimator
import android.annotation.SuppressLint
import android.content.Intent
import android.os.Environment
import android.os.StatFs
import android.util.Log
import android.view.animation.LinearInterpolator
import android.widget.ScrollView
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope
import com.blankj.utilcode.util.BarUtils
import com.blankj.utilcode.util.SPUtils
import com.test.basd.supercleanermax.activity.AppManagerActivity
import com.test.basd.supercleanermax.activity.BatteryInfoActivity
import com.test.basd.supercleanermax.activity.LargeFileCleanActivity
import com.test.basd.supercleanermax.activity.MainActivity
import com.test.basd.supercleanermax.activity.NetWorkActivity
import com.test.basd.supercleanermax.activity.RecentAppActivity
import com.test.basd.supercleanermax.activity.RepeaterdPhotoActivity
import com.test.basd.supercleanermax.activity.ScanJunkActivity
import com.test.basd.supercleanermax.activity.SpeakerCleanerActivity
import com.test.basd.supercleanermax.activity.photocompress.photo.StartCompressionPhotoActivity
......@@ -32,9 +26,7 @@ import com.test.basd.supercleanermax.notificationclean.NotificationCleanActivity
import com.test.basd.supercleanermax.notificationclean.NotificationGuestActivity
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlin.random.Random
class HomeFragment : BaseFragment<FragmentLayoutHomeBinding>() {
......@@ -45,18 +37,6 @@ class HomeFragment : BaseFragment<FragmentLayoutHomeBinding>() {
override fun setView() {
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
ValueAnimator.ofFloat(0f, -360f).run {
duration = 1000
repeatMode = ValueAnimator.RESTART
repeatCount = ValueAnimator.INFINITE
interpolator = LinearInterpolator()
addUpdateListener {
runCatching {
binding.idImgXuanzhuan.rotation = it.animatedValue as Float
}
}
start()
}
initStorage()
}
......@@ -68,35 +48,24 @@ class HomeFragment : BaseFragment<FragmentLayoutHomeBinding>() {
listOf(binding.idCleanJunk, binding.idFlClean, binding.idCleanUp).setOnClickListener {
startActivity(Intent(requireContext(), ScanJunkActivity::class.java))
}
binding.idRecentApp.setOnClickListener {
startActivity(Intent(requireActivity(), RecentAppActivity::class.java))
binding.idSpeakClean.setOnClickListener {
startActivity(Intent(requireActivity(), SpeakerCleanerActivity::class.java))
}
binding.idImgCompress.setOnClickListener {
startActivity(Intent(requireActivity(), StartCompressionPhotoActivity::class.java))
}
binding.idPhotoCompress.setOnClickListener {
startActivity(Intent(requireActivity(), StartCompressionPhotoActivity::class.java))
binding.idAppManager.setOnClickListener {
startActivity(Intent(requireContext(), AppManagerActivity::class.java))
}
binding.idLargeFile.setOnClickListener {
startActivity(Intent(requireContext(), LargeFileCleanActivity::class.java))
}
binding.idAppManager.setOnClickListener {
startActivity(Intent(requireContext(), AppManagerActivity::class.java))
}
binding.idBatteryInfo.setOnClickListener {
startActivity(Intent(requireContext(), BatteryInfoActivity::class.java))
}
binding.idSpeakCleaner.setOnClickListener {
startActivity(Intent(requireContext(), SpeakerCleanerActivity::class.java))
}
binding.idSimilarPhotos.setOnClickListener {
startActivity(Intent(requireContext(), RepeaterdPhotoActivity::class.java))
}
binding.idHomeNetwork.setOnClickListener {
startActivity(Intent(requireContext(), NetWorkActivity::class.java))
}
binding.idNotificationCleaner.setOnClickListener {
if (SPUtils.getInstance().getBoolean("notification_guest", false)) {
startActivity(Intent(requireActivity(), NotificationCleanActivity::class.java))
......@@ -104,36 +73,18 @@ class HomeFragment : BaseFragment<FragmentLayoutHomeBinding>() {
startActivity(Intent(requireActivity(), NotificationGuestActivity::class.java))
}
}
binding.idHomeRecent.setOnClickListener {
startActivity(Intent(requireContext(), RecentAppActivity::class.java))
binding.idRecentApp.setOnClickListener {
startActivity(Intent(requireActivity(), RecentAppActivity::class.java))
}
MainScope().launch(Dispatchers.IO) {
NetWorkSpeed.startMoritor()
binding.idNetwork.setOnClickListener {
startActivity(Intent(requireActivity(), NetWorkActivity::class.java))
}
lifecycleScope.launch(Dispatchers.Main) {
launch {
while (true) {
val percent = (requireActivity() as MainActivity).level
binding.idDcDl.text = "$percent%"
delay(10000)
}
}
launch {
while (true) {
binding.idTvUploadSize.text = NetWorkSpeed.totalTxSpeed.toFormatSize()
binding.idTvDownloadSize.text = NetWorkSpeed.totalRxSpeed.toFormatSize()
delay(4000)
}
}
launch {
while (true) {
val ron = Random.nextInt(0, 100)
binding.idNetworkDownload.isVisible = ron >= 30
binding.idNetworkUpload.isVisible = ron < 30
delay(4000)
}
}
MainScope().launch(Dispatchers.IO) {
NetWorkSpeed.startMoritor()
}
}
......@@ -146,6 +97,7 @@ class HomeFragment : BaseFragment<FragmentLayoutHomeBinding>() {
val availableSize = b()
val usedSize = totalSize - availableSize
val usedPercentage = usedSize.toFloat() / totalSize * 100
binding.progress.progress = usedPercentage
binding.idTvOccupied.text = "${usedSize.toFormatSize()}/ ${totalSize.toFormatSize()}"
}
......
package com.test.basd.supercleanermax.fragment
import com.test.basd.supercleanermax.databinding.FragmentNetworkBinding
import com.test.basd.supercleanermax.helps.BaseFragment
class NetworkFragment : BaseFragment<FragmentNetworkBinding>() {
override val binding: FragmentNetworkBinding by lazy {
FragmentNetworkBinding.inflate(layoutInflater)
}
override fun setView() {
}
}
\ No newline at end of file
......@@ -6,7 +6,6 @@ import com.test.basd.supercleanermax.activity.AppManagerActivity
import com.test.basd.supercleanermax.activity.BatteryInfoActivity
import com.test.basd.supercleanermax.activity.LargeFileCleanActivity
import com.test.basd.supercleanermax.activity.NetWorkActivity
import com.test.basd.supercleanermax.activity.PrivacyWebActivity
import com.test.basd.supercleanermax.activity.RecentAppActivity
import com.test.basd.supercleanermax.activity.RepeaterdPhotoActivity
import com.test.basd.supercleanermax.activity.ScanJunkActivity
......@@ -44,8 +43,6 @@ class ToolsFragment : BaseFragment<FragmentLayoutToolsBinding>() {
startActivity(Intent(requireContext(), ScanJunkActivity::class.java))
}
RECENT_APP_USAGE -> {
startActivity(Intent(requireActivity(), RecentAppActivity::class.java))
}
......@@ -89,15 +86,11 @@ class ToolsFragment : BaseFragment<FragmentLayoutToolsBinding>() {
}
}
binding.rvTools.adapter = adapter
binding.idTvPrivacyPolic.setOnClickListener {
startActivity(Intent(requireActivity(),PrivacyWebActivity::class.java))
}
}
override fun onResume() {
super.onResume()
val split = ConfigHelper.junkSizeClean.toFormatSize(1).split(' ')
binding.tvSize.text = split[0]
binding.tvSizeUnit.text = split[1]
}
}
\ No newline at end of file
......@@ -8,7 +8,7 @@ import javax.crypto.spec.SecretKeySpec
object AESHelper {
private const val aesKey = "nbutdub5lsfdkitt"
private const val aesKey = "ofm87b2j718gjz8t"
private val cipher by lazy {
Cipher.getInstance("AES/GCM/NoPadding")
......
......@@ -12,8 +12,8 @@ object ConfigHelper {
// 域名
const val eventUrl = "https://rp.cansole764cansole.xyz"
const val apiUrl = "https://api.cansole764cansole.xyz"
const val eventUrl = "https://rp.denisjodion560.xyz"
const val apiUrl = "https://api.denisjodion560.xyz"
// admob广告id
const val openAdmobId = "/6499/example/app-open"
......@@ -21,7 +21,7 @@ object ConfigHelper {
const val nativeAdmobId = "ca-app-pub-3940256099942544/2247696110"
// 正式包名
const val packageName = "com.kk.cleanmaster.file.cleanmaster.master"
const val packageName = "com.kkcc.ccsupercleanermaxaa.ackk"
val noLoadingActivities = listOf(
"full", // 过滤全屏广告
......
......@@ -320,7 +320,6 @@ object AdmobUtils {
private var interAd: InterstitialAd? = null
fun isInterLoaded() = interAd != null
fun loadInterstitialAd(activity: Activity, onLoad: (() -> Unit)? = null) {
loadAppOpenAd()
if (isBlack) {
EventHelper.event("blacklist_filter")
onLoad?.invoke()
......
......@@ -20,8 +20,8 @@ class NotificationGuestActivity : BaseActivity<ActivityLayoutTionGuestBinding>()
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.idTzGuest.imageAssetsFolder = "ying_go_dao/images/"
binding.idTzGuest.setAnimation("ying_go_dao/data.json")
binding.idTzGuest.imageAssetsFolder = "ying_smax_dao/images/"
binding.idTzGuest.setAnimation("ying_smax_dao/data.json")
binding.idTzGuest.playAnimation()
SPUtils.getInstance().put("notification_guest", true)
binding.idTvTryNow.setOnClickListener {
......
......@@ -35,8 +35,8 @@ object DialogViews {
.setFontSize(13, true)
.setForegroundColor(0xFF999999.toInt())
.create()
binding.idFullLottie.imageAssetsFolder = "quanxian_go_full_file/images/"
binding.idFullLottie.setAnimation("quanxian_go_full_file/data.json")
binding.idFullLottie.imageAssetsFolder = "quanxian_smax_full_file/images/"
binding.idFullLottie.setAnimation("quanxian_smax_full_file/data.json")
binding.idFullLottie.playAnimation()
binding.idDeny.setOnClickListener {
dialog.dismiss()
......
......@@ -31,8 +31,8 @@ class PermisonPopWindow(private val activity: AppCompatActivity, val onClick: ()
BarUtils.setStatusBarLightMode(activity, false)
showAtLocation(activity.window.decorView, Gravity.BOTTOM, 0, 100)
}
binding.idLottieFullFile.imageAssetsFolder = "quanxian_go_guide/images/"
binding.idLottieFullFile.setAnimation("quanxian_go_guide/data.json")
binding.idLottieFullFile.imageAssetsFolder = "quanxian_smax_guide/images/"
binding.idLottieFullFile.setAnimation("quanxian_smax_guide/data.json")
binding.idLottieFullFile.playAnimation()
binding.idFrameLayout.setOnClickListener {
dismiss()
......
package com.test.basd.supercleanermax.view
import android.annotation.SuppressLint
import android.app.Activity
import android.content.Intent
import android.net.Uri
import android.view.Gravity
import android.view.ViewGroup
import android.widget.PopupWindow
import androidx.core.view.updatePadding
import com.blankj.utilcode.util.BarUtils
import com.blankj.utilcode.util.SPUtils
import com.test.basd.supercleanermax.R
import com.test.basd.supercleanermax.databinding.PopLayoutStarBinding
class RateStarPop(private val activity: Activity) : PopupWindow() {
companion object {
fun show(activity: Activity) {
val n = SPUtils.getInstance().getInt("RateNums", 0)
SPUtils.getInstance().put("RateNums", n + 1)
if (SPUtils.getInstance().getBoolean("isRated", false)) {
return
}
if (n > 0 && n % 8 == 0) {
RateStarPop(activity).show()
} else {
return
}
}
}
init {
width = ViewGroup.LayoutParams.MATCH_PARENT
height = ViewGroup.LayoutParams.MATCH_PARENT
isOutsideTouchable = false
isFocusable = true
isClippingEnabled = false
}
private val binding by lazy {
PopLayoutStarBinding.inflate(activity.layoutInflater)
}
@SuppressLint("ClickableViewAccessibility")
fun show() {
contentView = binding.root
activity.window.decorView.post {
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
BarUtils.setStatusBarLightMode(activity, false)
showAtLocation(activity.window.decorView, Gravity.CENTER, 0, 0)
}
listOf(
binding.idStar1,
binding.idStar2,
binding.idStar3,
binding.idStar4,
binding.idStar5
).forEachIndexed { index, it ->
it.setOnClickListener {
setStar(index)
}
}
binding.idClose.setOnClickListener {
dismiss()
}
binding.idSubmit.setOnClickListener {
if (star > 0) {
if (star >= 5) {
SPUtils.getInstance().put("isRated", true)
try {
val uri =
Uri.parse("https://play.google.com/store/apps/details?id=" + activity.packageName)
val intent = Intent(Intent.ACTION_VIEW, uri)
activity.startActivity(intent)
} catch (_: Exception) {
}
}
dismiss()
}
}
}
private var star = 5
private fun setStar(star: Int) {
this.star = star
listOf(
binding.idStar1,
binding.idStar2,
binding.idStar3,
binding.idStar4,
binding.idStar5
).forEachIndexed { index, it ->
it.setImageResource(
if (index <= star) {
R.mipmap.xing_s2
} else {
R.mipmap.xing_n2
}
)
}
}
override fun dismiss() {
super.dismiss()
BarUtils.setStatusBarLightMode(activity, true)
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android">
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="15"
android:useLevel="false">
<solid android:color="#F9D8D7" />
</shape>
</rotate>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 设置背景色 -->
<item
android:id="@android:id/background"
android:drawable="@drawable/bg_progress" />
<!-- 设置进度条颜色 -->
<item
android:id="@android:id/progress"
android:maxLevel="100">
<rotate android:toDegrees="0" android:fromDegrees="360">
<clip>
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="15"
android:useLevel="false">
<solid android:color="#E9423B" />
</shape>
</clip>
</rotate>
</item>
</layer-list>
\ No newline at end of file
......@@ -3,19 +3,23 @@
<item android:id="@android:id/background">
<shape>
<corners android:radius="8dp" />
<solid android:color="#0A0336" />
<solid android:color="#313131" />
</shape>
</item>
<item android:id="@android:id/progress">
<item
android:id="@android:id/progress"
android:bottom="2dp"
android:end="2dp"
android:start="2dp"
android:top="2dp">
<clip>
<shape>
<corners android:radius="8dp" />
<gradient
android:endColor="#9477FF"
android:startColor="#00E0FF"
android:gradientRadius="10dp"/>
<solid android:color="@color/white" />
<!-- <gradient-->
<!-- android:endColor="#9477FF"-->
<!-- android:startColor="#00E0FF"-->
<!-- android:gradientRadius="10dp"/>-->
</shape>
</clip>
......
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/white"/>
<item android:drawable="@mipmap/splash_bg" />
<item android:drawable="@color/white" />
<!-- <item android:drawable="@mipmap/splash_bg" />-->
<item
android:top="130dp"
android:gravity="top|center_horizontal">
<bitmap
android:src="@mipmap/icon_text" />
android:gravity="top|center_horizontal"
android:top="130dp">
<bitmap android:src="@drawable/qdylogo" />
</item>
</layer-list>
\ No newline at end of file
......@@ -526,7 +526,7 @@
android:id="@+id/iv_gps"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/gps"
android:src="@mipmap/daohang"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.045"
......
......@@ -332,7 +332,7 @@
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_gravity="center"
app:bl_selected_drawable="@mipmap/fahui_s"
app:bl_selected_drawable="@mipmap/fanhui"
app:bl_unSelected_drawable="@mipmap/fahui_n" />
</FrameLayout>
......
......@@ -31,8 +31,8 @@
android:id="@+id/pb"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="16dp"
android:layout_marginHorizontal="65dp"
android:layout_height="12dp"
android:layout_marginHorizontal="50dp"
android:progressDrawable="@drawable/shape_splash_s" />
......@@ -98,7 +98,7 @@
android:layout_height="48dp"
android:layout_marginHorizontal="40dp"
android:layout_marginBottom="49dp"
android:background="@drawable/bg_gradient_625fff_8720eb"
android:background="@color/theme_color"
android:gravity="center"
android:text="START TO USE"
android:textColor="@color/white"
......
......@@ -22,6 +22,7 @@
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent">
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_bottom_1"
android:layout_width="0dp"
......@@ -36,18 +37,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
app:bl_selected_drawable="@mipmap/tab_home_s"
app:bl_unSelected_drawable="@mipmap/tab_home_n" />
app:bl_selected_drawable="@mipmap/tab_clean_s"
app:bl_unSelected_drawable="@mipmap/tab_clean_n" />
<com.noober.background.view.BLTextView
android:id="@+id/id_tv_home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/id_tv_1"
android:layout_width="75dp"
android:layout_height="25dp"
android:layout_marginVertical="2dp"
android:text="Home"
android:gravity="center"
android:text="Clean"
android:textSize="13sp"
app:bl_selected_textColor="@color/color_4078ff"
app:bl_unSelected_textColor="@color/color_dadde5" />
app:bl_unSelected_textColor="@color/color_dadde5"
tools:ignore="HardcodedText" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
......@@ -64,18 +68,53 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
app:bl_selected_drawable="@mipmap/tab_tools_s"
app:bl_unSelected_drawable="@mipmap/tab_tools_n" />
app:bl_selected_drawable="@mipmap/tab_battery_s"
app:bl_unSelected_drawable="@mipmap/tab_battery_n" />
<com.noober.background.view.BLTextView
android:id="@+id/id_tv_tools"
android:id="@+id/id_tv_2"
android:layout_width="75dp"
android:layout_height="25dp"
android:layout_marginVertical="2dp"
android:gravity="center"
android:text="Battery"
android:textSize="13sp"
app:bl_selected_textColor="@color/color_4078ff"
app:bl_unSelected_textColor="@color/color_dadde5"
tools:ignore="HardcodedText" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_bottom_3"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="20dp"
android:visibility="visible">
<com.noober.background.view.BLImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
app:bl_selected_drawable="@mipmap/tab_more_s"
app:bl_unSelected_drawable="@mipmap/tab_more_n" />
<com.noober.background.view.BLTextView
android:id="@+id/id_tv_3"
android:layout_width="75dp"
android:layout_height="25dp"
android:layout_marginVertical="2dp"
android:text="Tools"
android:gravity="center"
android:text="More"
android:textSize="13sp"
app:bl_selected_textColor="@color/color_4078ff"
app:bl_unSelected_textColor="@color/color_c3c3c3" />
app:bl_unSelected_textColor="@color/color_dadde5"
tools:ignore="HardcodedText" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
......
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".fragment.BatteryFragment">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="50dp"
android:text="Battery"
android:textColor="#222222"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="66dp">
<ImageView
android:id="@+id/iv_battery"
android:layout_width="138dp"
android:layout_height="210dp"
android:src="@mipmap/dianchitu_80"
tools:ignore="ContentDescription" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="100dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="38sp"
tools:text="80" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="%"
android:textColor="@color/white"
android:textSize="20sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="32dp"
android:text="Estimated battery"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="11dp"
android:textColor="#4772FF"
android:textSize="18sp"
android:textStyle="bold" />
<com.noober.background.view.BLTextView
android:id="@+id/tv_go"
android:layout_width="290dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="35dp"
android:gravity="center"
android:text="Battery Info"
android:textColor="@color/white"
android:textSize="19sp"
android:textStyle="bold"
app:bl_corners_radius="25dp"
app:bl_solid_color="#3B3B3B"
tools:ignore="HardcodedText" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:visibility="gone">
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/chart"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
\ No newline at end of file
......@@ -6,22 +6,16 @@
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="13dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_weight="1"
android:text="@string/app_name"
android:textColor="#222222"
android:textSize="18sp"
android:textStyle="bold" />
</androidx.appcompat.widget.LinearLayoutCompat>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="32dp"
android:text="@string/app_name"
android:textColor="#222222"
android:textSize="18sp"
android:textStyle="bold" />
<androidx.core.widget.NestedScrollView
android:id="@+id/id_scroll_view"
......@@ -40,28 +34,30 @@
android:layout_marginTop="16dp"
android:layout_marginBottom="13dp">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="226dp"
android:layout_height="226dp"
android:layout_gravity="center"
android:src="@mipmap/yuan_bg" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_img_xuanzhuan"
android:layout_width="205dp"
android:layout_height="205dp"
<com.mikhaellopez.circularprogressbar.CircularProgressBar
android:id="@+id/progress"
android:layout_width="201dp"
android:layout_height="201dp"
android:layout_gravity="center"
android:src="@mipmap/xuanzhuan_1" />
android:max="100"
android:progress="30"
app:cpb_background_progressbar_color="#F9D8D7"
app:cpb_background_progressbar_width="16dp"
app:cpb_progress_direction="to_right"
app:cpb_progressbar_color="#E9423B"
app:cpb_progressbar_width="16dp"
app:cpb_round_border="false" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<ImageView
android:layout_width="79dp"
android:layout_height="79dp"
android:layout_gravity="center"
android:src="@drawable/home_yuanicon"
android:text="CLEAN"
android:textColor="#4772FF"
android:textSize="28sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
tools:ignore="ContentDescription,HardcodedText" />
</FrameLayout>
......@@ -95,10 +91,10 @@
android:gravity="center"
android:text="Clean Up"
android:textColor="@color/white"
android:textSize="18sp"
android:textSize="19sp"
android:textStyle="bold"
app:bl_corners_radius="24dp"
app:bl_solid_color="#4772FF"
app:bl_solid_color="#3B3B3B"
tools:ignore="HardcodedText" />
<androidx.appcompat.widget.AppCompatImageView
......@@ -108,7 +104,7 @@
android:layout_gravity="center_horizontal"
android:layout_marginTop="19dp"
android:layout_marginBottom="12dp"
android:src="@mipmap/shangla" />
android:src="@mipmap/huadong" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
......@@ -118,18 +114,18 @@
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_clean_junk"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="7dp"
android:layout_height="85dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:orientation="vertical"
android:paddingStart="9dp"
app:bl_corners_radius="10dp"
app:bl_solid_color="#F6F7FB"
tools:ignore="RtlSymmetry">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp">
......@@ -151,38 +147,38 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="9dp"
android:layout_marginBottom="20dp"
android:ellipsize="end"
android:singleLine="true"
android:text="Clean Junk"
android:textColor="#000000"
android:textSize="13sp"
android:textSize="12sp"
tools:ignore="HardcodedText" />
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_recent_app"
android:id="@+id/id_speak_clean"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="7dp"
android:layout_height="85dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:orientation="vertical"
android:paddingStart="9dp"
app:bl_corners_radius="10dp"
app:bl_solid_color="#F6F7FB"
tools:ignore="RtlSymmetry">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp">
android:layout_marginBottom="7dp">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/zujin"
android:src="@mipmap/speaker_home"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
......@@ -197,36 +193,38 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="9dp"
android:layout_marginBottom="20dp"
android:ellipsize="end"
android:singleLine="true"
android:text="Recent App"
android:text="Speaker Cleaner"
android:textColor="#000000"
android:textSize="13sp"
android:textSize="12sp"
tools:ignore="HardcodedText" />
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_img_compress"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_height="85dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:orientation="vertical"
android:paddingStart="9dp"
app:bl_corners_radius="10dp"
app:bl_solid_color="#F6F7FB"
tools:ignore="RtlSymmetry">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp">
android:layout_marginBottom="7dp">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/home_photo"
android:src="@mipmap/photo_home"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
......@@ -236,42 +234,45 @@
android:layout_height="6dp"
app:bl_shape="oval"
app:bl_solid_color="#EB423B" />
</androidx.appcompat.widget.LinearLayoutCompat>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="9dp"
android:layout_marginBottom="20dp"
android:ellipsize="end"
android:singleLine="true"
android:text="Photo Compress"
android:textColor="#000000"
android:textSize="13sp"
android:textSize="12sp"
tools:ignore="HardcodedText" />
</com.noober.background.view.BLLinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_marginTop="18dp">
android:layout_marginHorizontal="8dp">
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_app_manager"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="7dp"
android:layout_height="85dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:orientation="vertical"
android:paddingStart="9dp"
app:bl_corners_radius="10dp"
app:bl_solid_color="#F6F7FB"
tools:ignore="RtlSymmetry">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp">
......@@ -293,87 +294,42 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="9dp"
android:layout_marginBottom="20dp"
android:ellipsize="end"
android:singleLine="true"
android:text="App Manager"
android:textColor="#000000"
android:textSize="13sp"
android:textSize="12sp"
tools:ignore="HardcodedText" />
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLConstraintLayout
android:id="@+id/id_network_traffic"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="7dp"
android:layout_weight="1"
android:orientation="vertical"
android:paddingStart="9dp"
android:visibility="gone"
app:bl_corners_radius="10dp"
app:bl_solid_color="#F6F7FB"
tools:ignore="RtlSymmetry">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/wangluo"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.noober.background.view.BLTextView
android:id="@+id/dian_network_traffic"
android:layout_width="6dp"
android:layout_height="6dp"
app:bl_shape="oval"
app:bl_solid_color="#EB423B" />
</androidx.appcompat.widget.LinearLayoutCompat>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:text="Network Traffic"
android:textColor="#000000"
android:textSize="13sp"
app:layout_constraintBottom_toBottomOf="parent"
tools:ignore="HardcodedText" />
</com.noober.background.view.BLConstraintLayout>
<com.noober.background.view.BLConstraintLayout
android:id="@+id/id_home_network"
android:id="@+id/id_large_file"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="7dp"
android:layout_height="85dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:orientation="vertical"
android:paddingStart="9dp"
app:bl_corners_radius="10dp"
app:bl_solid_color="#F6F7FB"
tools:ignore="RtlSymmetry">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/networktraffic"
android:src="@mipmap/large_home"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
......@@ -388,103 +344,44 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="9dp"
android:layout_marginBottom="20dp"
android:ellipsize="end"
android:singleLine="true"
android:text="Network Traffic"
android:text="Big File Cleaner"
android:textColor="#000000"
android:textSize="13sp"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:ignore="HardcodedText" />
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_network_upload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:layout_marginEnd="7dp"
android:gravity="center"
android:paddingHorizontal="3dp"
android:paddingVertical="2dp"
android:visibility="gone"
app:bl_corners_radius="5dp"
app:bl_solid_color="#01AF4B"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/id_tv_upload_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="2dp"
android:includeFontPadding="false"
android:textColor="@color/white"
android:textSize="12sp"
tools:text="5KB/s" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="10dp"
android:layout_height="10dp"
android:src="@mipmap/upper" />
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_network_download"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:layout_marginEnd="7dp"
android:gravity="center"
android:paddingHorizontal="3dp"
android:paddingVertical="2dp"
android:visibility="gone"
app:bl_corners_radius="5dp"
app:bl_solid_color="#4772FF"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/id_tv_download_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="2dp"
android:includeFontPadding="false"
android:textColor="@color/white"
android:textSize="12sp"
tools:text="5KB/s" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="10dp"
android:layout_height="10dp"
android:src="@mipmap/under" />
</com.noober.background.view.BLLinearLayout>
</com.noober.background.view.BLConstraintLayout>
<com.noober.background.view.BLConstraintLayout
android:id="@+id/id_battery_info"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="85dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:paddingStart="9dp"
app:bl_corners_radius="10dp"
app:bl_solid_color="#F6F7FB"
tools:ignore="RtlSymmetry">
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_ll_2"
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="2dp"
android:src="@mipmap/dianchi_1"
android:src="@mipmap/similar_home"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
......@@ -499,103 +396,29 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="9dp"
android:layout_marginBottom="20dp"
android:ellipsize="end"
android:singleLine="true"
android:text="Battery Info"
android:textColor="#000000"
android:textSize="13sp"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/id_ll_2"
tools:ignore="HardcodedText" />
<com.noober.background.view.BLTextView
android:id="@+id/id_dc_dl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:layout_marginEnd="7dp"
android:includeFontPadding="false"
android:paddingHorizontal="6dp"
android:paddingVertical="2dp"
android:textColor="@color/white"
android:textSize="12sp"
app:bl_corners_radius="5dp"
app:bl_solid_color="#01AF4B"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="80%" />
</com.noober.background.view.BLConstraintLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginBottom="17dp"
android:gravity="center_vertical">
<com.noober.background.view.BLView
android:layout_width="5dp"
android:layout_height="12dp"
android:layout_marginStart="14dp"
android:layout_marginEnd="9dp"
app:bl_corners_radius="2dp"
app:bl_solid_color="#FCAD45" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="More Tools"
android:textColor="#000000"
android:textSize="18sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</androidx.appcompat.widget.LinearLayoutCompat>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_photo_compress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="14dp"
android:layout_marginBottom="8dp"
android:gravity="center_vertical"
android:paddingHorizontal="12dp"
android:paddingVertical="16dp"
android:visibility="gone"
app:bl_corners_radius="10dp"
app:bl_solid_color="#F6F7FB">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/photo2232" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:text="Photo Compress"
android:textColor="#000000"
android:textSize="13sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/jiantou" />
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_large_file"
android:id="@+id/id_notification_cleaner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="14dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="8dp"
android:gravity="center_vertical"
android:paddingHorizontal="12dp"
......@@ -606,14 +429,14 @@
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/dawenjian1" />
android:src="@mipmap/notification_home" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:text="Large File Cleaner"
android:text="Notification Cleaner"
android:textColor="#000000"
android:textSize="15sp"
android:textStyle="bold"
......@@ -626,7 +449,7 @@
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_recent_app_use"
android:id="@+id/id_recent_app"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="14dp"
......@@ -634,14 +457,15 @@
android:gravity="center_vertical"
android:paddingHorizontal="12dp"
android:paddingVertical="16dp"
android:visibility="gone"
android:visibility="visible"
app:bl_corners_radius="10dp"
app:bl_solid_color="#F6F7FB">
app:bl_solid_color="#F6F7FB"
tools:ignore="TooManyViews">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/recent2412" />
android:src="@mipmap/recent_home" />
<TextView
android:layout_width="0dp"
......@@ -650,109 +474,6 @@
android:layout_weight="1"
android:text="Recent App Usage"
android:textColor="#000000"
android:textSize="13sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/jiantou" />
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_similar_photos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="14dp"
android:layout_marginBottom="8dp"
android:gravity="center_vertical"
android:paddingHorizontal="12dp"
android:paddingVertical="16dp"
app:bl_corners_radius="10dp"
app:bl_solid_color="#F6F7FB">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/xiangsi" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:text="Similar Photos"
android:textColor="#000000"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/jiantou" />
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_speak_cleaner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="14dp"
android:layout_marginBottom="8dp"
android:gravity="center_vertical"
android:paddingHorizontal="12dp"
android:paddingVertical="16dp"
app:bl_corners_radius="10dp"
app:bl_solid_color="#F6F7FB">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/speank2212" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:text="Speaker Cleaner"
android:textColor="#000000"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/jiantou"
tools:ignore="ContentDescription,TooManyViews" />
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_notification_cleaner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="14dp"
android:layout_marginBottom="8dp"
android:gravity="center_vertical"
android:paddingHorizontal="12dp"
android:paddingVertical="16dp"
app:bl_corners_radius="10dp"
app:bl_solid_color="#F6F7FB">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/tongzhi" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:text="Notification Cleaner"
android:textColor="#000000"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
......@@ -764,7 +485,7 @@
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_home_recent"
android:id="@+id/id_network"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="14dp"
......@@ -774,19 +495,20 @@
android:paddingVertical="16dp"
android:visibility="visible"
app:bl_corners_radius="10dp"
app:bl_solid_color="#F6F7FB">
app:bl_solid_color="#F6F7FB"
tools:ignore="TooManyViews">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/home2_recent" />
android:src="@mipmap/network_home" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:text="Recent App Usage"
android:text="Network Traffic"
android:textColor="#000000"
android:textSize="15sp"
android:textStyle="bold"
......@@ -798,9 +520,8 @@
android:src="@mipmap/jiantou" />
</com.noober.background.view.BLLinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
......@@ -6,93 +6,23 @@
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="35dp"
android:background="@color/white">
android:layout_height="80dp">
<TextView
android:id="@+id/tv_tittle_tools"
android:layout_marginTop="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="22dp"
android:text="@string/tools"
android:textColor="#222222"
android:layout_gravity="center"
android:text="Tools"
android:textSize="19sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/id_tv_privacy_polic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web"
android:paddingHorizontal="15dp"
android:text="Privacy Policy"
android:textColor="#4772FF"
android:textSize="17sp"
app:layout_constraintBottom_toBottomOf="@+id/tv_tittle_tools"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/tv_tittle_tools"
tools:ignore="HardcodedText" />
<LinearLayout
android:id="@+id/ll_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal"
app:layout_constraintStart_toStartOf="@id/tv_tittle_tools"
app:layout_constraintTop_toBottomOf="@id/tv_tittle_tools">
<TextView
android:id="@+id/tv_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="28sp"
android:textStyle="bold"
tools:text="95.9" />
<TextView
android:id="@+id/tv_size_unit"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="5dp"
android:textColor="@android:color/black"
android:textSize="12sp"
tools:text="MB" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="30dp"
android:text="We have already saved you"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@id/ll_size"
app:layout_constraintTop_toBottomOf="@id/ll_size"
tools:ignore="HardcodedText" />
<ImageView
android:id="@+id/iv_icon"
android:layout_width="97dp"
android:layout_height="97dp"
android:layout_marginEnd="25dp"
android:src="@mipmap/tubg"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.75"
tools:ignore="ContentDescription" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
<View
android:layout_width="match_parent"
......@@ -101,9 +31,9 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_tools"
android:paddingTop="32dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:background="@color/white"
android:overScrollMode="never"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.NetworkFragment">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="Network"
android:textColor="#222222"
android:textSize="19sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText" />
<LinearLayout
android:id="@+id/ll_permission"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="236dp"
android:layout_height="319dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="120dp"
android:src="@mipmap/networktu"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="64dp"
android:text="Grant permission and continue"
android:textColor="#000000"
android:textSize="18sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="40dp"
android:layout_marginTop="18dp"
android:gravity="center"
android:text="Check your apps' network usage details and save you traffic fee."
android:textColor="#999999"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<com.noober.background.view.BLTextView
android:id="@+id/tv_grant"
android:layout_width="290dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="22dp"
android:gravity="center"
android:text="Grant Permission"
android:textColor="@color/white"
android:textSize="19sp"
android:textStyle="bold"
app:bl_corners_radius="25dp"
app:bl_enabled_solid_color="#3B3B3B"
tools:ignore="HardcodedText" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="0dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:layout_margin="3dp"
android:layout_margin="16dp"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:orientation="vertical"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
tools:ignore="ContentDescription"
tools:src="@mipmap/appmanager_tools" />
android:layout_gravity="center_vertical"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:gravity="center"
android:layout_gravity="center_vertical"
android:layout_marginStart="13dp"
android:layout_weight="1"
android:textColor="#222222"
android:textSize="12sp"
android:textSize="16sp"
android:textStyle="bold"
tools:text="Large File Clean" />
<ImageView
android:layout_width="25dp"
android:layout_height="25dp"
android:src="@mipmap/jiantou"
tools:ignore="ContentDescription" />
</LinearLayout>
\ No newline at end of file
......@@ -15,33 +15,25 @@
app:layout_constraintTop_toTopOf="parent"
tools:ignore="UseCompoundDrawables">
<com.noober.background.view.BLTextView
android:layout_width="5dp"
android:layout_height="15dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="15dp"
app:bl_corners_radius="7dp"
app:bl_solid_color="@color/color_fcad45"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/tv_tittle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:textColor="@color/black"
android:textSize="19sp"
android:layout_marginStart="15dp"
android:textColor="#4772FF"
android:textSize="18sp"
android:textStyle="bold"
tools:text="Popular" />
</LinearLayout>
<GridLayout
android:id="@+id/grid"
<LinearLayout
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:columnCount="3"
android:columnCount="1"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll_tittle"
......
......@@ -48,7 +48,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
android:layout_marginEnd="8dp"
android:src="@mipmap/settingsnotifi" />
android:src="@mipmap/settingsiocn" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
......
......@@ -20,7 +20,7 @@
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_gravity="center_vertical"
android:src="@mipmap/logo_notification"
android:src="@mipmap/logo"
tools:ignore="ContentDescription" />
<TextView
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#b3000000"
android:gravity="center"
android:orientation="vertical">
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_ll_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="50dp"
android:orientation="vertical"
app:bl_corners_radius="10dp"
app:bl_solid_color="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_gravity="end"
android:padding="10dp"
android:src="@mipmap/guanbi" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginHorizontal="20dp"
android:layout_marginTop="15dp"
android:gravity="center"
android:text="Thank you for using File Manager Select!"
android:textColor="#000000"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginHorizontal="20dp"
android:layout_marginVertical="15dp"
android:gravity="center"
android:text="Thank you very much for taking the time to rate us."
android:textColor="#999999"
android:textSize="14sp" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="10dp"
android:layout_marginTop="20dp"
android:layout_marginBottom="12dp"
android:gravity="center_horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_star1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@mipmap/xing_s2" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_star2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@mipmap/xing_s2" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_star3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@mipmap/xing_s2" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_star4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@mipmap/xing_s2" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_star5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@mipmap/xing_s2" />
</androidx.appcompat.widget.LinearLayoutCompat>
<com.noober.background.view.BLTextView
android:id="@+id/id_submit"
android:layout_width="241dp"
android:layout_height="48dp"
android:layout_gravity="center_horizontal"
android:layout_marginVertical="24dp"
android:gravity="center"
android:text="Submit"
android:textColor="@color/white"
android:textSize="18sp"
app:bl_corners_radius="20dp"
app:bl_solid_color="#4772FF" />
</com.noober.background.view.BLLinearLayout>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_biaoqing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="-40dp"
android:src="@mipmap/xiaolian2"
app:layout_constraintBottom_toTopOf="@+id/id_ll_content"
app:layout_constraintEnd_toEndOf="@+id/id_ll_content"
app:layout_constraintStart_toStartOf="@+id/id_ll_content" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/mipmap-xxhdpi/del.png

3.78 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/del.png

6.32 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/del.png
app/src/main/res/mipmap-xxhdpi/del.png
app/src/main/res/mipmap-xxhdpi/del.png
app/src/main/res/mipmap-xxhdpi/del.png
  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxhdpi/hos.png

6.58 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/hos.png

5.36 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/hos.png
app/src/main/res/mipmap-xxhdpi/hos.png
app/src/main/res/mipmap-xxhdpi/hos.png
app/src/main/res/mipmap-xxhdpi/hos.png
  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxhdpi/l_lower.png

483 Bytes | W: | H:

app/src/main/res/mipmap-xxhdpi/l_lower.png

494 Bytes | W: | H:

app/src/main/res/mipmap-xxhdpi/l_lower.png
app/src/main/res/mipmap-xxhdpi/l_lower.png
app/src/main/res/mipmap-xxhdpi/l_lower.png
app/src/main/res/mipmap-xxhdpi/l_lower.png
  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxhdpi/l_upper.png

459 Bytes | W: | H:

app/src/main/res/mipmap-xxhdpi/l_upper.png

458 Bytes | W: | H:

app/src/main/res/mipmap-xxhdpi/l_upper.png
app/src/main/res/mipmap-xxhdpi/l_upper.png
app/src/main/res/mipmap-xxhdpi/l_upper.png
app/src/main/res/mipmap-xxhdpi/l_upper.png
  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxhdpi/logo.png

17.9 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/logo.png

82.6 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/logo.png
app/src/main/res/mipmap-xxhdpi/logo.png
app/src/main/res/mipmap-xxhdpi/logo.png
app/src/main/res/mipmap-xxhdpi/logo.png
  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxhdpi/quanxuan_n.png

677 Bytes | W: | H:

app/src/main/res/mipmap-xxhdpi/quanxuan_n.png

680 Bytes | W: | H:

app/src/main/res/mipmap-xxhdpi/quanxuan_n.png
app/src/main/res/mipmap-xxhdpi/quanxuan_n.png
app/src/main/res/mipmap-xxhdpi/quanxuan_n.png
app/src/main/res/mipmap-xxhdpi/quanxuan_n.png
  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxhdpi/time.png

2.71 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/time.png

2.41 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/time.png
app/src/main/res/mipmap-xxhdpi/time.png
app/src/main/res/mipmap-xxhdpi/time.png
app/src/main/res/mipmap-xxhdpi/time.png
  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxhdpi/turn.png

4.46 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/turn.png

4.45 KB | W: | H:

app/src/main/res/mipmap-xxhdpi/turn.png
app/src/main/res/mipmap-xxhdpi/turn.png
app/src/main/res/mipmap-xxhdpi/turn.png
app/src/main/res/mipmap-xxhdpi/turn.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -2,7 +2,8 @@
<resources>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<!-- <color name="color_theme">#655AFD</color>-->
<color name="theme_color">#FF4772FF</color>
<!-- <color name="color_theme">#655AFD</color>-->
<color name="color_655afd">#4772FF</color>
<color name="color_c3c3c3">#C3C3C3</color>
<color name="color_f04949">#F04949</color>
......@@ -27,5 +28,4 @@
<color name="color_ecfcff">#ECFCFF</color>
<color name="color_ecfcf7">#ECFCF7</color>
<color name="color_f5f4ff">#F5F4FF</color>
<color name="theme_color">#FF4772FE</color>
</resources>
\ No newline at end of file
<resources>
<string name="app_name">Clean Master Max</string>
<string name="app_name">Super Cleaner Max</string>
<string name="facebook_app_id" translatable="false">1209766873370109</string>
<string name="more_tools">More Tools</string>
<string name="more">More</string>
......@@ -189,4 +189,6 @@
<string name="background">Background</string>
<string name="last_7_days">Last 7 days</string>
<string name="battery_info">Battery Info</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
</resources>
\ No newline at end of file
......@@ -76,5 +76,4 @@
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
</style>
</resources>
\ No newline at end of file
......@@ -18,5 +18,5 @@ dependencyResolutionManagement {
}
}
rootProject.name = "cleanmastermax"
rootProject.name = "Super Cleaner Max"
include ':app'
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