Commit 44b28468 authored by wanglei's avatar wanglei

Merge remote-tracking branch 'origin/free-master' into free-master

# Conflicts:
#	app/src/main/AndroidManifest.xml
parents c1c04510 bd1ecae6
...@@ -3,8 +3,6 @@ ...@@ -3,8 +3,6 @@
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
...@@ -16,20 +14,6 @@ ...@@ -16,20 +14,6 @@
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<queries>
<intent>
<action android:name="android.intent.action.MAIN" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
</intent>
</queries>
<application <application
android:name=".MyApplication" android:name=".MyApplication"
...@@ -38,10 +22,8 @@ ...@@ -38,10 +22,8 @@
android:fullBackupContent="@xml/backup_rules" android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/logo" android:icon="@mipmap/logo"
android:label="@string/app_name" android:label="@string/app_name"
android:requestLegacyExternalStorage="true"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.SmartCleaner" android:theme="@style/Theme.SmartCleaner"
android:usesCleartextTraffic="true"
tools:targetApi="31"> tools:targetApi="31">
<activity <activity
...@@ -63,13 +45,6 @@ ...@@ -63,13 +45,6 @@
android:launchMode="singleTask" android:launchMode="singleTask"
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.AppManagerActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity <activity
android:name=".activity.ScreenShotActivity" android:name=".activity.ScreenShotActivity"
android:exported="false" android:exported="false"
...@@ -122,6 +97,7 @@ ...@@ -122,6 +97,7 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity <activity
android:name=".activity.ResultActivity" android:name=".activity.ResultActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
...@@ -130,7 +106,9 @@ ...@@ -130,7 +106,9 @@
android:name=".activity.RepeatPhotoActivity" android:name=".activity.RepeatPhotoActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.BatteryInfoActivity"
android:screenOrientation="portrait" />
<meta-data <meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID" android:name="com.google.android.gms.ads.APPLICATION_ID"
...@@ -145,42 +123,6 @@ ...@@ -145,42 +123,6 @@
android:name="com.google.android.gms.ads.flag.NATIVE_AD_DEBUGGER_ENABLED" android:name="com.google.android.gms.ads.flag.NATIVE_AD_DEBUGGER_ENABLED"
android:value="false" /> android:value="false" />
<!-- <service-->
<!-- android:name=".display.fcm.MyFirebaseMessagingService"-->
<!-- android:exported="true">-->
<!-- <intent-filter>-->
<!-- <action android:name="com.google.firebase.MESSAGING_EVENT" />-->
<!-- </intent-filter>-->
<!-- </service>-->
<!-- 注册广播 -->
<!-- <receiver-->
<!-- android:name=".display.fcm.MyFirebaseMessagingReceiver"-->
<!-- android:exported="true"-->
<!-- android:permission="com.google.android.c2dm.permission.SEND">-->
<!-- <intent-filter>-->
<!-- <action android:name="com.google.firebase.MESSAGING_EVENT" />-->
<!-- <action android:name="com.google.android.c2dm.intent.RECEIVE" />-->
<!-- <category android:name="com.test.fast.cleanerjunk" />-->
<!-- </intent-filter>-->
<!-- </receiver>-->
<!-- <service-->
<!-- android:name=".display.NotificationService"-->
<!-- android:permission="android.permission.FOREGROUND_SERVICE" />-->
<!-- <service-->
<!-- android:name=".notificationclean.AppNotificationListenerService"-->
<!-- android:exported="true"-->
<!-- android:label="AppNotification service"-->
<!-- android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">-->
<!-- <intent-filter>-->
<!-- <action android:name="android.service.notification.NotificationListenerService" />-->
<!-- </intent-filter>-->
<!-- </service>-->
<!-- <service-->
<!-- android:name=".service.FlashlightService"-->
<!-- android:exported="true"-->
<!-- tools:ignore="ExportedService" />-->
<activity <activity
android:name=".activity.photocompress.photo.StartCompressionPhotoActivity" android:name=".activity.photocompress.photo.StartCompressionPhotoActivity"
...@@ -203,18 +145,37 @@ ...@@ -203,18 +145,37 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<!-- <receiver-->
<!-- android:name=".display.CloseNotificationReceiver"-->
<!-- android:exported="true"-->
<!-- tools:ignore="ExportedReceiver">-->
<!-- <intent-filter>-->
<!-- <action android:name="com.file.notification.CloseNotificationReceiver" />-->
<!-- </intent-filter>-->
<!-- </receiver>-->
<meta-data <meta-data
android:name="com.facebook.sdk.ApplicationId" android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" /> android:value="@string/facebook_app_id" />
<service
android:name=".fcm.FcmService"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service> <!-- 添加以下接收器 -->
<!-- 注册广播 -->
<receiver
android:name=".fcm.FcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.test.easy.cleanerjunk" />
</intent-filter>
</receiver>
<receiver
android:name=".fcm.CloseNotificationReceiver"
android:exported="false">
<intent-filter>
<action android:name="CANCEL_NOTIFICATION" />
</intent-filter>
</receiver>
</application> </application>
......
...@@ -5,10 +5,7 @@ import android.app.Activity ...@@ -5,10 +5,7 @@ import android.app.Activity
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.text.TextUtils import android.text.TextUtils
import android.util.Log
import com.google.android.gms.ads.MobileAds import com.google.android.gms.ads.MobileAds
import com.google.firebase.FirebaseApp
import com.google.firebase.messaging.FirebaseMessaging
import com.test.easy.easycleanerjunk.activity.splash.NewSplashActivity import com.test.easy.easycleanerjunk.activity.splash.NewSplashActivity
import com.test.easy.easycleanerjunk.fcm.ActionBroadcast import com.test.easy.easycleanerjunk.fcm.ActionBroadcast
import com.test.easy.easycleanerjunk.fcm.FCMUtil import com.test.easy.easycleanerjunk.fcm.FCMUtil
...@@ -17,8 +14,6 @@ import com.test.easy.easycleanerjunk.helps.ConfigHelper ...@@ -17,8 +14,6 @@ import com.test.easy.easycleanerjunk.helps.ConfigHelper
import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils
import com.test.easy.easycleanerjunk.utils.ActivityManagerUtils import com.test.easy.easycleanerjunk.utils.ActivityManagerUtils
import com.test.easy.easycleanerjunk.utils.SPUtils import com.test.easy.easycleanerjunk.utils.SPUtils
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.launch
import java.util.UUID import java.util.UUID
class MyApplication : BaseApplication() { class MyApplication : BaseApplication() {
......
package com.test.easy.easycleanerjunk.activity
import android.annotation.SuppressLint
import android.content.Intent
import androidx.activity.addCallback
import androidx.core.content.ContextCompat
import androidx.core.view.isVisible
import com.test.easy.easycleanerjunk.R
import com.test.easy.easycleanerjunk.databinding.ActivityLayoutBatteryInfoBinding
import com.test.easy.easycleanerjunk.helps.BaseActivity
import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils
import com.test.easy.easycleanerjunk.service.BatteryReceiver
import com.test.easy.easycleanerjunk.view.AFunOb
import kotlin.random.Random
class BatteryInfoActivity : BaseActivity<ActivityLayoutBatteryInfoBinding>() {
override val isLightMode = true
override val binding: ActivityLayoutBatteryInfoBinding by lazy {
ActivityLayoutBatteryInfoBinding.inflate(layoutInflater)
}
@SuppressLint("SetTextI18n")
override fun initView() {
AdmobUtils.showNativeAd(this, binding.idFlAd)
binding.idBatteryLottie.imageAssetsFolder = "battery_scan/images/"
binding.idBatteryLottie.setAnimation("battery_scan/data.json")
binding.idBatteryLottie.playAnimation()
binding.root.postDelayed({
AdmobUtils.showInterstitialAd(this){
binding.idBatteryLottie.clearAnimation()
binding.idConsOne.isVisible = false
}
}, Random.nextLong(3000,4500))
val percent = BatteryReceiver.level / BatteryReceiver.scale.toFloat()
binding.idChongdian.isVisible = BatteryReceiver.status==2
binding.idTvDl.text = "${(percent * 100).toInt()}%"
val p = (percent * 100).toInt()
if (p in 21..49) {
binding.idImgDc.setImageResource(R.mipmap.cheng)
binding.idProBar.progressDrawable =
ContextCompat.getDrawable(this, R.drawable.pro_battery_orage)
} else if (p >= 50) {
binding.idImgDc.setImageResource(R.mipmap.lv)
binding.idProBar.progressDrawable =
ContextCompat.getDrawable(this, R.drawable.pro_battery_lv)
} else {
binding.idImgDc.setImageResource(R.mipmap.hong)
binding.idProBar.progressDrawable =
ContextCompat.getDrawable(this, R.drawable.pro_battery_red)
}
binding.idProBar.progress = (percent * 100).toInt()
val temperature = BatteryReceiver.temperature / 10f
binding.idBatteryTem.text = "%.1f °C".format(temperature)
binding.idTvVolt.text = "${BatteryReceiver.voltage}mV"
binding.idBatteryMah.text = "${BatteryReceiver.mAh.toInt()}mAh"
}
override fun initListener() {
binding.idBack.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
onBackPressedDispatcher.addCallback {
AdmobUtils.showInterstitialAd(this@BatteryInfoActivity) {
finishToMain()
}
}
binding.idTvGotIt.setOnClickListener {
AdmobUtils.showInterstitialAd(this) {
startActivity(Intent(this, ResultActivity::class.java).apply {
putExtra("from", AFunOb.BATTERY_INFO)
})
finish()
}
}
}
}
\ No newline at end of file
...@@ -12,6 +12,7 @@ import com.test.easy.easycleanerjunk.helps.BaseActivity ...@@ -12,6 +12,7 @@ import com.test.easy.easycleanerjunk.helps.BaseActivity
import com.test.easy.easycleanerjunk.helps.KotlinExt.toFormatSize import com.test.easy.easycleanerjunk.helps.KotlinExt.toFormatSize
import com.test.easy.easycleanerjunk.utils.BarUtils import com.test.easy.easycleanerjunk.utils.BarUtils
import com.test.easy.easycleanerjunk.utils.SPUtils import com.test.easy.easycleanerjunk.utils.SPUtils
import com.test.easy.easycleanerjunk.view.AFunOb.BATTERY_INFO
import com.test.easy.easycleanerjunk.view.AFunOb.JUNK_CLEANER import com.test.easy.easycleanerjunk.view.AFunOb.JUNK_CLEANER
import com.test.easy.easycleanerjunk.view.AFunOb.LARGE_FILE_CLEANER import com.test.easy.easycleanerjunk.view.AFunOb.LARGE_FILE_CLEANER
import com.test.easy.easycleanerjunk.view.AFunOb.PHOTO_COMPRESS import com.test.easy.easycleanerjunk.view.AFunOb.PHOTO_COMPRESS
...@@ -29,6 +30,9 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() { ...@@ -29,6 +30,9 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
binding.clTop.updatePadding(top = BarUtils.getStatusBarHeight()) binding.clTop.updatePadding(top = BarUtils.getStatusBarHeight())
adapter = AppFunctionAdapter { adapter = AppFunctionAdapter {
when (it) { when (it) {
BATTERY_INFO -> {
startActivity(Intent(this, BatteryInfoActivity::class.java))
}
JUNK_CLEANER -> { JUNK_CLEANER -> {
startActivity(Intent(this, ScanJunkActivity::class.java)) startActivity(Intent(this, ScanJunkActivity::class.java))
} }
...@@ -48,8 +52,8 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() { ...@@ -48,8 +52,8 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
binding.rvFun.adapter = adapter binding.rvFun.adapter = adapter
adapter.updateListPostion() adapter.updateListPostion()
adapter.notifyDataSetChanged() adapter.notifyDataSetChanged()
val wenBen = intent.getStringExtra("wenBen") // val wenBen = intent.getStringExtra("wenBen")
binding.tvInfo.text = wenBen // binding.tvInfo.text = wenBen
val from = intent.getStringExtra("from") val from = intent.getStringExtra("from")
when (from) { when (from) {
...@@ -74,6 +78,9 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() { ...@@ -74,6 +78,9 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
val size = intent.getLongExtra("size", 0L).toFormatSize(1) val size = intent.getLongExtra("size", 0L).toFormatSize(1)
binding.tvInfo.text = "Compress ${intent.getIntExtra("num", 0)} photo, $size space freed" binding.tvInfo.text = "Compress ${intent.getIntExtra("num", 0)} photo, $size space freed"
} }
BATTERY_INFO -> {
binding.tvInfo.text = "Battery scan completed."
}
else -> {} else -> {}
} }
from?.let { from?.let {
......
...@@ -6,6 +6,7 @@ import android.content.Intent ...@@ -6,6 +6,7 @@ import android.content.Intent
import android.view.animation.LinearInterpolator import android.view.animation.LinearInterpolator
import android.widget.ScrollView import android.widget.ScrollView
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import com.test.easy.easycleanerjunk.activity.BatteryInfoActivity
import com.test.easy.easycleanerjunk.activity.LargeFileCleanActivity import com.test.easy.easycleanerjunk.activity.LargeFileCleanActivity
import com.test.easy.easycleanerjunk.activity.RepeatPhotoActivity import com.test.easy.easycleanerjunk.activity.RepeatPhotoActivity
import com.test.easy.easycleanerjunk.activity.ScanJunkActivity import com.test.easy.easycleanerjunk.activity.ScanJunkActivity
...@@ -14,9 +15,7 @@ import com.test.easy.easycleanerjunk.activity.SettingActivity ...@@ -14,9 +15,7 @@ import com.test.easy.easycleanerjunk.activity.SettingActivity
import com.test.easy.easycleanerjunk.activity.photocompress.photo.StartCompressionPhotoActivity import com.test.easy.easycleanerjunk.activity.photocompress.photo.StartCompressionPhotoActivity
import com.test.easy.easycleanerjunk.databinding.FragmentLayoutHomeBinding import com.test.easy.easycleanerjunk.databinding.FragmentLayoutHomeBinding
import com.test.easy.easycleanerjunk.helps.BaseFragment import com.test.easy.easycleanerjunk.helps.BaseFragment
import com.test.easy.easycleanerjunk.helps.ConfigHelper
import com.test.easy.easycleanerjunk.helps.KotlinExt.setOnClickListener import com.test.easy.easycleanerjunk.helps.KotlinExt.setOnClickListener
import com.test.easy.easycleanerjunk.helps.ReportUtils
import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils
import com.test.easy.easycleanerjunk.utils.BarUtils import com.test.easy.easycleanerjunk.utils.BarUtils
...@@ -93,6 +92,9 @@ class HomeFragment : BaseFragment<FragmentLayoutHomeBinding>() { ...@@ -93,6 +92,9 @@ class HomeFragment : BaseFragment<FragmentLayoutHomeBinding>() {
binding.idScreenshotClean.setOnClickListener { binding.idScreenshotClean.setOnClickListener {
startActivity(Intent(requireContext(), ScreenShotActivity::class.java)) startActivity(Intent(requireContext(), ScreenShotActivity::class.java))
} }
binding.idBatteryInfo.setOnClickListener {
startActivity(Intent(requireContext(), BatteryInfoActivity::class.java))
}
} }
......
package com.test.easy.easycleanerjunk.helps package com.test.easy.easycleanerjunk.helps
import android.app.Application import android.app.Application
import android.content.IntentFilter
import com.test.easy.easycleanerjunk.service.BatteryReceiver
abstract class BaseApplication : Application() { abstract class BaseApplication : Application() {
companion object { companion object {
...@@ -11,7 +13,9 @@ abstract class BaseApplication : Application() { ...@@ -11,7 +13,9 @@ abstract class BaseApplication : Application() {
super.onCreate() super.onCreate()
context = this context = this
init() init()
registerReceiver(BatteryReceiver(), IntentFilter().apply {
addAction("android.intent.action.BATTERY_CHANGED")
})
} }
abstract fun init() abstract fun init()
......
package com.test.easy.easycleanerjunk.service
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.os.BatteryManager
class BatteryReceiver : BroadcastReceiver() {
companion object {
var level = 0
var scale = 0
var voltage = 0
var temperature = 0
var mAh = 0f
var health = 0
var status = 0
var technology = "" //获取电池技术支持
}
override fun onReceive(context: Context, intent: Intent) {
if (intent.action == Intent.ACTION_BATTERY_CHANGED) {
level = intent.getIntExtra("level", 0)
scale = intent.getIntExtra("scale", 0)
voltage = intent.getIntExtra("voltage", 0)
temperature = intent.getIntExtra("temperature", 0)
technology = intent.getStringExtra("technology").toString()
status = intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN)
health = intent.getIntExtra("health", BatteryManager.BATTERY_HEALTH_UNKNOWN)
val batteryManager = context.getSystemService(Context.BATTERY_SERVICE) as? BatteryManager ?: return
val chargeCounter = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER)
val propertyCapacity = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY)
if (chargeCounter != Int.MIN_VALUE && propertyCapacity != Int.MIN_VALUE) {
mAh = (chargeCounter / (propertyCapacity.toFloat() / 100f)) / 1000f
}
}
}
}
\ No newline at end of file
...@@ -6,5 +6,5 @@ object AFunOb { ...@@ -6,5 +6,5 @@ object AFunOb {
const val SIMILAR_PHOTOS = "Similar Photos" const val SIMILAR_PHOTOS = "Similar Photos"
const val PHOTO_COMPRESS = "Photo Compress" const val PHOTO_COMPRESS = "Photo Compress"
const val SCREENSHOT_CLEANER = "Screenshot Cleaner" const val SCREENSHOT_CLEANER = "Screenshot Cleaner"
const val BATTERY_INFO = "Battery Info"
} }
\ 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">
<shape>
<solid android:color="#EBEBEB" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<solid android:color="#07BD36" />
</shape>
</clip>
</item>
</layer-list>
\ 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">
<shape>
<solid android:color="#EBEBEB" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<solid android:color="#FF9517" />
</shape>
</clip>
</item>
</layer-list>
\ 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">
<shape>
<solid android:color="#EBEBEB" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<solid android:color="#FF3B28" />
</shape>
</clip>
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#4772FF" />
<corners android:radius="24dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FAFAFB" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
This diff is collapsed.
...@@ -365,7 +365,7 @@ ...@@ -365,7 +365,7 @@
android:layout_weight="1" android:layout_weight="1"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:orientation="vertical" android:orientation="vertical"
android:visibility="invisible" android:visibility="visible"
tools:ignore="RtlSymmetry"> tools:ignore="RtlSymmetry">
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
......
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