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