diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt
index 0c5e497..a56f29b 100644
--- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt
+++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt
@@ -12,6 +12,7 @@ import android.text.format.DateFormat
import android.util.Log
import android.view.*
import androidx.annotation.RequiresApi
+import androidx.appcompat.widget.AppCompatTextView
import androidx.biometric.BiometricPrompt
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
@@ -123,7 +124,42 @@ class HomeFragment : Fragment(),
val level: Int = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1)
val scale: Int = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1)
+ // Get the TextView by its ID
+ val batteryTextView: AppCompatTextView = binding.battery
+
val batteryLevel = level * 100 / scale.toFloat()
+
+ val batteryDrawable = when {
+ batteryLevel >= 95 -> ContextCompat.getDrawable(
+ requireContext(),
+ R.drawable.app_battery100
+ )
+
+ batteryLevel >= 70 -> ContextCompat.getDrawable(
+ requireContext(),
+ R.drawable.app_battery75
+ )
+
+ batteryLevel >= 45 -> ContextCompat.getDrawable(
+ requireContext(),
+ R.drawable.app_battery50
+ )
+
+ else -> ContextCompat.getDrawable(requireContext(), R.drawable.app_battery25)
+ }
+
+ batteryDrawable?.let {
+ // Resize the drawable to match the text size
+ val textSize = batteryTextView.textSize.toInt()
+ if (preferenceHelper.showBattery) {
+ it.setBounds(0, 0, textSize, textSize)
+ batteryTextView.setCompoundDrawables(it, null, null, null)
+ } else {
+ it.setBounds(0, 0, 0, 0)
+ batteryTextView.setCompoundDrawables(null, null, null, null)
+ }
+ }
+
val batteryLevelText = getString(R.string.battery_level, batteryLevel.toString())
binding.battery.text = batteryLevelText
}
@@ -148,6 +184,7 @@ class HomeFragment : Fragment(),
}
}
+ @RequiresApi(Build.VERSION_CODES.R)
private fun observeFavoriteAppList() {
viewModel.compareInstalledAppInfo()
@@ -339,6 +376,7 @@ class HomeFragment : Fragment(),
binding.nestScrollView.hideKeyboard()
}
+ @RequiresApi(Build.VERSION_CODES.R)
override fun onResume() {
super.onResume()
binding.nestScrollView.hideKeyboard()
diff --git a/app/src/main/res/drawable/app_battery100.xml b/app/src/main/res/drawable/app_battery100.xml
new file mode 100644
index 0000000..cb4c53f
--- /dev/null
+++ b/app/src/main/res/drawable/app_battery100.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/app_battery25.xml b/app/src/main/res/drawable/app_battery25.xml
new file mode 100644
index 0000000..52e401e
--- /dev/null
+++ b/app/src/main/res/drawable/app_battery25.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/app_battery50.xml b/app/src/main/res/drawable/app_battery50.xml
new file mode 100644
index 0000000..7b9ed37
--- /dev/null
+++ b/app/src/main/res/drawable/app_battery50.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/app_battery75.xml b/app/src/main/res/drawable/app_battery75.xml
new file mode 100644
index 0000000..00a3aa7
--- /dev/null
+++ b/app/src/main/res/drawable/app_battery75.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 6d20783..6ad1889 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -23,4 +23,8 @@
#65FFFFFF
#CCFFFFFF
#E6FFFFFF
+
+ #4CAF50
+ #AF684C
+ #AF4C4C
\ No newline at end of file