Skip to content

Commit 4f3203c

Browse files
Add Charging Mode full-charge profile editor
1 parent e57d852 commit 4f3203c

1 file changed

Lines changed: 74 additions & 0 deletions

File tree

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

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,46 @@ class MainActivity : Activity() {
225225
.apply()
226226
}
227227

228+
private fun getSavedChargingFullModeProfile(): GameModeProfile {
229+
fun get(prefix: String, key: String) = "${prefix}_${key}"
230+
val prefix = "charging_full_mode"
231+
232+
return GameModeProfile(
233+
fanEnabled = prefs().getBoolean(get(prefix, "fan_enabled"), false),
234+
fanLevel = prefs().getInt(get(prefix, "fan_level"), 0),
235+
pumpEnabled = false,
236+
pumpProfile = "quick",
237+
fanLedEnabled = prefs().getBoolean(get(prefix, "fan_led_enabled"), true),
238+
fanLedEffect = prefs().getString(get(prefix, "fan_led_effect"), "breathe") ?: "breathe",
239+
fanLedColor = prefs().getInt(get(prefix, "fan_led_color"), 2),
240+
logoLedEnabled = prefs().getBoolean(get(prefix, "logo_led_enabled"), true),
241+
logoLedEffect = prefs().getString(get(prefix, "logo_led_effect"), "breathe") ?: "breathe",
242+
logoLedColor = prefs().getInt(get(prefix, "logo_led_color"), 2),
243+
shoulderLedEnabled = prefs().getBoolean(get(prefix, "shoulder_led_enabled"), true),
244+
shoulderLedEffect = prefs().getString(get(prefix, "shoulder_led_effect"), "breathe") ?: "breathe",
245+
shoulderLedColor = prefs().getInt(get(prefix, "shoulder_led_color"), 2)
246+
)
247+
}
248+
249+
private fun saveChargingFullModeProfile(profile: GameModeProfile) {
250+
val prefix = "charging_full_mode"
251+
fun key(name: String) = "${prefix}_${name}"
252+
253+
prefs().edit()
254+
.putBoolean(key("fan_enabled"), profile.fanEnabled)
255+
.putInt(key("fan_level"), profile.fanLevel)
256+
.putBoolean(key("fan_led_enabled"), profile.fanLedEnabled)
257+
.putString(key("fan_led_effect"), profile.fanLedEffect)
258+
.putInt(key("fan_led_color"), profile.fanLedColor)
259+
.putBoolean(key("logo_led_enabled"), profile.logoLedEnabled)
260+
.putString(key("logo_led_effect"), profile.logoLedEffect)
261+
.putInt(key("logo_led_color"), profile.logoLedColor)
262+
.putBoolean(key("shoulder_led_enabled"), profile.shoulderLedEnabled)
263+
.putString(key("shoulder_led_effect"), profile.shoulderLedEffect)
264+
.putInt(key("shoulder_led_color"), profile.shoulderLedColor)
265+
.apply()
266+
}
267+
228268
private fun chargingModeProfileSummary(): String {
229269
val p = getSavedChargingModeProfile()
230270
val fanLabel = if (p.fanEnabled) {
@@ -2606,13 +2646,20 @@ addView(row(configureTriggersBtn, trigEnableBtn))
26062646
chargingModeSummaryText.text = chargingModeProfileSummary()
26072647
}
26082648

2649+
val editChargingFullProfileBtn = actionButton("EDIT FULL CHARGE PROFILE") {
2650+
showChargingFullModeProfileDialog()
2651+
chargingModeSummaryText.text = chargingModeProfileSummary()
2652+
}
2653+
26092654
val chargingModeCard = sectionPanel().apply {
26102655
addView(sectionHeader("", "CHARGING MODE"))
26112656
addView(bodyText("Applies a dedicated LED and fan profile while charging. Call Mode is the only mode allowed to override it."))
26122657
addView(chargingModeSummaryText)
26132658
addView(chargingModeRow)
26142659
addView(space(dp(10)))
26152660
addView(singleRow(editChargingProfileBtn))
2661+
addView(space(dp(8)))
2662+
addView(singleRow(editChargingFullProfileBtn))
26162663
}
26172664

26182665
container.addView(chargingModeCard)
@@ -2908,6 +2955,33 @@ addView(row(configureTriggersBtn, trigEnableBtn))
29082955
}
29092956
}
29102957

2958+
private fun showChargingFullModeProfileDialog() {
2959+
GameModeUi.showGameModeProfileDialog(
2960+
activity = this,
2961+
current = getSavedChargingFullModeProfile(),
2962+
deps = GameModeUi.Deps(
2963+
textPrimary = textPrimary,
2964+
textSecondary = textSecondary,
2965+
panelColor = panelColor,
2966+
borderColor = borderColor,
2967+
panelPressed = panelPressed,
2968+
accent = accent,
2969+
typeface = typeface,
2970+
dp = { value -> dp(value) },
2971+
roundedBg = { fill, stroke, radius -> roundedBg(fill, stroke, radius) },
2972+
roundedFill = { color, radius -> roundedFill(color, radius) },
2973+
filterChip = { label, selected, onClick -> filterChip(label, selected, onClick) },
2974+
space = { value -> space(value) },
2975+
colorDotDrawable = { hex, selected -> colorDotDrawable(hex, selected) },
2976+
colorDotGeneric = { hex, selected, onClick -> colorDotGeneric(hex, selected, onClick) },
2977+
),
2978+
onSaveProfile = { profile ->
2979+
saveChargingFullModeProfile(profile)
2980+
startService(Intent(this, ChargingModeService::class.java))
2981+
}
2982+
)
2983+
}
2984+
29112985
private fun showChargingModeProfileDialog() {
29122986
GameModeUi.showGameModeProfileDialog(
29132987
activity = this,

0 commit comments

Comments
 (0)