mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-06-08 12:13:31 -04:00
3e4d2b4d46
* feat(control-center): add widget config overlay with showMountPath toggle for DiskUsage Introduces WidgetConfigOverlay and DiskUsageWidgetConfigMenu components, allowing users to toggle mount path visibility per DiskUsage widget in edit mode * refactor(control-center): use Theme.iconSizeLarge and Theme.fontSizeLarge for small tiles Standardize SmallDiskUsageButton and SmallBatteryButton sizing with Theme.iconSizeLarge and Theme.fontSizeLarge, and unify font weight to Font.Bold on both tile widgets. * fix(control-center): adjust SmallDiskUsageButton font size based on showMountPath * refactor(control-center): simplify DiskUsage config menu i18n strings Remove the redundant "Disk Usage Widget" title and the toggle description to reduce translatable strings
92 lines
2.9 KiB
JavaScript
92 lines
2.9 KiB
JavaScript
function getWidgetForId(baseWidgetDefinitions, widgetId) {
|
|
return baseWidgetDefinitions.find(w => w.id === widgetId)
|
|
}
|
|
|
|
function addWidget(widgetId) {
|
|
var widgets = SettingsData.controlCenterWidgets.slice()
|
|
var widget = {
|
|
"id": widgetId,
|
|
"enabled": true,
|
|
"width": 50
|
|
}
|
|
|
|
if (widgetId === "diskUsage") {
|
|
widget.instanceId = generateUniqueId()
|
|
widget.mountPath = "/"
|
|
widget.showMountPath = true
|
|
}
|
|
|
|
if (widgetId === "brightnessSlider") {
|
|
widget.instanceId = generateUniqueId()
|
|
widget.deviceName = ""
|
|
}
|
|
|
|
widgets.push(widget)
|
|
SettingsData.set("controlCenterWidgets", widgets)
|
|
}
|
|
|
|
function generateUniqueId() {
|
|
return Date.now().toString(36) + Math.random().toString(36).substr(2)
|
|
}
|
|
|
|
function removeWidget(index) {
|
|
var widgets = SettingsData.controlCenterWidgets.slice()
|
|
if (index >= 0 && index < widgets.length) {
|
|
widgets.splice(index, 1)
|
|
SettingsData.set("controlCenterWidgets", widgets)
|
|
}
|
|
}
|
|
|
|
function toggleWidgetSize(index) {
|
|
var widgets = SettingsData.controlCenterWidgets.slice()
|
|
if (index >= 0 && index < widgets.length) {
|
|
const currentWidth = widgets[index].width || 50
|
|
const id = widgets[index].id || ""
|
|
|
|
if (id === "wifi" || id === "bluetooth" || id === "audioOutput" || id === "audioInput") {
|
|
widgets[index].width = currentWidth <= 50 ? 100 : 50
|
|
} else {
|
|
if (currentWidth <= 25) {
|
|
widgets[index].width = 50
|
|
} else if (currentWidth <= 50) {
|
|
widgets[index].width = 100
|
|
} else {
|
|
widgets[index].width = 25
|
|
}
|
|
}
|
|
|
|
SettingsData.set("controlCenterWidgets", widgets)
|
|
}
|
|
}
|
|
|
|
function reorderWidgets(newOrder) {
|
|
SettingsData.set("controlCenterWidgets", newOrder)
|
|
}
|
|
|
|
function moveWidget(fromIndex, toIndex) {
|
|
let widgets = [...(SettingsData.controlCenterWidgets || [])]
|
|
if (fromIndex >= 0 && fromIndex < widgets.length && toIndex >= 0 && toIndex < widgets.length) {
|
|
const movedWidget = widgets.splice(fromIndex, 1)[0]
|
|
widgets.splice(toIndex, 0, movedWidget)
|
|
SettingsData.set("controlCenterWidgets", widgets)
|
|
}
|
|
}
|
|
|
|
function resetToDefault() {
|
|
const defaultWidgets = [
|
|
{"id": "volumeSlider", "enabled": true, "width": 50},
|
|
{"id": "brightnessSlider", "enabled": true, "width": 50},
|
|
{"id": "wifi", "enabled": true, "width": 50},
|
|
{"id": "bluetooth", "enabled": true, "width": 50},
|
|
{"id": "audioOutput", "enabled": true, "width": 50},
|
|
{"id": "audioInput", "enabled": true, "width": 50},
|
|
{"id": "nightMode", "enabled": true, "width": 50},
|
|
{"id": "darkMode", "enabled": true, "width": 50}
|
|
]
|
|
SettingsData.set("controlCenterWidgets", defaultWidgets)
|
|
}
|
|
|
|
function clearAll() {
|
|
SettingsData.set("controlCenterWidgets", [])
|
|
}
|