Skip to content

Commit e57d852

Browse files
Add Charging Mode full-charge profile
1 parent daba982 commit e57d852

2 files changed

Lines changed: 21 additions & 13 deletions

File tree

app/src/main/java/com/elitedarkkaiser/redmagic/ChargingModeProfileBuilder.kt

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,26 @@ package com.elitedarkkaiser.redmagic
33
import android.content.SharedPreferences
44

55
object ChargingModeProfileBuilder {
6-
fun build(prefs: SharedPreferences): ModeHardwareProfile {
6+
fun build(prefs: SharedPreferences, full: Boolean = false): ModeHardwareProfile {
7+
val prefix = if (full) "charging_full_mode" else "charging_mode"
8+
79
return ModeHardwareProfile(
8-
fanEnabled = prefs.getBoolean("charging_mode_fan_enabled", false),
9-
fanLevel = prefs.getInt("charging_mode_fan_level", 2),
10+
fanEnabled = prefs.getBoolean("${prefix}_fan_enabled", false),
11+
fanLevel = prefs.getInt("${prefix}_fan_level", if (full) 0 else 2),
1012
pumpEnabled = false,
1113
pumpProfile = "quick",
1214

13-
fanLedEnabled = prefs.getBoolean("charging_mode_fan_led_enabled", true),
14-
fanLedEffect = prefs.getString("charging_mode_fan_led_effect", "steady") ?: "steady",
15-
fanLedColor = prefs.getInt("charging_mode_fan_led_color", prefs.getInt(PrefsKeys.FAN_LED_COLOR, 1)),
15+
fanLedEnabled = prefs.getBoolean("${prefix}_fan_led_enabled", true),
16+
fanLedEffect = prefs.getString("${prefix}_fan_led_effect", if (full) "breathe" else "steady") ?: "steady",
17+
fanLedColor = prefs.getInt("${prefix}_fan_led_color", if (full) 2 else prefs.getInt(PrefsKeys.FAN_LED_COLOR, 1)),
1618

17-
logoLedEnabled = prefs.getBoolean("charging_mode_logo_led_enabled", true),
18-
logoLedEffect = prefs.getString("charging_mode_logo_led_effect", "steady") ?: "steady",
19-
logoLedColor = prefs.getInt("charging_mode_logo_led_color", prefs.getInt(PrefsKeys.LOGO_LED_COLOR, 1)),
19+
logoLedEnabled = prefs.getBoolean("${prefix}_logo_led_enabled", true),
20+
logoLedEffect = prefs.getString("${prefix}_logo_led_effect", if (full) "breathe" else "steady") ?: "steady",
21+
logoLedColor = prefs.getInt("${prefix}_logo_led_color", if (full) 2 else prefs.getInt(PrefsKeys.LOGO_LED_COLOR, 1)),
2022

21-
shoulderLedEnabled = prefs.getBoolean("charging_mode_shoulder_led_enabled", true),
22-
shoulderLedEffect = prefs.getString("charging_mode_shoulder_led_effect", "steady") ?: "steady",
23-
shoulderLedColor = prefs.getInt("charging_mode_shoulder_led_color", prefs.getInt(PrefsKeys.SHOULDER_LED_COLOR, 8))
23+
shoulderLedEnabled = prefs.getBoolean("${prefix}_shoulder_led_enabled", true),
24+
shoulderLedEffect = prefs.getString("${prefix}_shoulder_led_effect", if (full) "breathe" else "steady") ?: "steady",
25+
shoulderLedColor = prefs.getInt("${prefix}_shoulder_led_color", if (full) 2 else prefs.getInt(PrefsKeys.SHOULDER_LED_COLOR, 8))
2426
)
2527
}
2628
}

app/src/main/java/com/elitedarkkaiser/redmagic/ChargingModeService.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class ChargingModeService : Service() {
3131
if (!callOwns) {
3232
ModeHardwareApplier.apply(
3333
this@ChargingModeService,
34-
ChargingModeProfileBuilder.build(prefs)
34+
ChargingModeProfileBuilder.build(prefs, isFullCharge())
3535
)
3636
}
3737
} else if (chargingModeActive) {
@@ -76,6 +76,12 @@ class ChargingModeService : Service() {
7676

7777
override fun onBind(intent: Intent?): IBinder? = null
7878

79+
private fun isFullCharge(): Boolean {
80+
val batteryManager = getSystemService(BATTERY_SERVICE) as BatteryManager
81+
val percent = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY)
82+
return percent >= 100
83+
}
84+
7985
private fun isCharging(): Boolean {
8086
val batteryManager = getSystemService(BATTERY_SERVICE) as BatteryManager
8187
return batteryManager.isCharging

0 commit comments

Comments
 (0)