Commit bd1ecae6 authored by maxiaoliang's avatar maxiaoliang

提交电池信息页面

parent 312256a1
......@@ -106,7 +106,9 @@
android:name=".activity.RepeatPhotoActivity"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.BatteryInfoActivity"
android:screenOrientation="portrait" />
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
......@@ -122,7 +124,6 @@
android:value="false" />
<activity
android:name=".activity.photocompress.photo.StartCompressionPhotoActivity"
android:screenOrientation="portrait"
......@@ -168,7 +169,8 @@
</intent-filter>
</receiver>
<receiver android:name=".fcm.CloseNotificationReceiver"
<receiver
android:name=".fcm.CloseNotificationReceiver"
android:exported="false">
<intent-filter>
<action android:name="CANCEL_NOTIFICATION" />
......
......@@ -5,10 +5,7 @@ import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.text.TextUtils
import android.util.Log
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.fcm.ActionBroadcast
import com.test.easy.easycleanerjunk.fcm.FCMUtil
......@@ -17,8 +14,6 @@ import com.test.easy.easycleanerjunk.helps.ConfigHelper
import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils
import com.test.easy.easycleanerjunk.utils.ActivityManagerUtils
import com.test.easy.easycleanerjunk.utils.SPUtils
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.launch
import java.util.UUID
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
import com.test.easy.easycleanerjunk.helps.KotlinExt.toFormatSize
import com.test.easy.easycleanerjunk.utils.BarUtils
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.LARGE_FILE_CLEANER
import com.test.easy.easycleanerjunk.view.AFunOb.PHOTO_COMPRESS
......@@ -29,6 +30,9 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
binding.clTop.updatePadding(top = BarUtils.getStatusBarHeight())
adapter = AppFunctionAdapter {
when (it) {
BATTERY_INFO -> {
startActivity(Intent(this, BatteryInfoActivity::class.java))
}
JUNK_CLEANER -> {
startActivity(Intent(this, ScanJunkActivity::class.java))
}
......@@ -48,8 +52,8 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
binding.rvFun.adapter = adapter
adapter.updateListPostion()
adapter.notifyDataSetChanged()
val wenBen = intent.getStringExtra("wenBen")
binding.tvInfo.text = wenBen
// val wenBen = intent.getStringExtra("wenBen")
// binding.tvInfo.text = wenBen
val from = intent.getStringExtra("from")
when (from) {
......@@ -74,6 +78,9 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
val size = intent.getLongExtra("size", 0L).toFormatSize(1)
binding.tvInfo.text = "Compress ${intent.getIntExtra("num", 0)} photo, $size space freed"
}
BATTERY_INFO -> {
binding.tvInfo.text = "Battery scan completed."
}
else -> {}
}
from?.let {
......
......@@ -6,6 +6,7 @@ import android.content.Intent
import android.view.animation.LinearInterpolator
import android.widget.ScrollView
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.RepeatPhotoActivity
import com.test.easy.easycleanerjunk.activity.ScanJunkActivity
......@@ -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.databinding.FragmentLayoutHomeBinding
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.ReportUtils
import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils
import com.test.easy.easycleanerjunk.utils.BarUtils
......@@ -93,6 +92,9 @@ class HomeFragment : BaseFragment<FragmentLayoutHomeBinding>() {
binding.idScreenshotClean.setOnClickListener {
startActivity(Intent(requireContext(), ScreenShotActivity::class.java))
}
binding.idBatteryInfo.setOnClickListener {
startActivity(Intent(requireContext(), BatteryInfoActivity::class.java))
}
}
......
package com.test.easy.easycleanerjunk.helps
import android.app.Application
import android.content.IntentFilter
import com.test.easy.easycleanerjunk.service.BatteryReceiver
abstract class BaseApplication : Application() {
companion object {
......@@ -11,7 +13,9 @@ abstract class BaseApplication : Application() {
super.onCreate()
context = this
init()
registerReceiver(BatteryReceiver(), IntentFilter().apply {
addAction("android.intent.action.BATTERY_CHANGED")
})
}
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 {
const val SIMILAR_PHOTOS = "Similar Photos"
const val PHOTO_COMPRESS = "Photo Compress"
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 @@
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical"
android:visibility="invisible"
android:visibility="visible"
tools:ignore="RtlSymmetry">
<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