1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-28 15:32:50 -05:00

handle new ConfigReloaded event

This commit is contained in:
bbedward
2025-08-17 12:27:52 -04:00
parent d8082f70b3
commit 24b44186bd
4 changed files with 253 additions and 44 deletions

View File

@@ -15,34 +15,40 @@ Singleton {
property int currentLevel: levelInfo
property bool toastVisible: false
property var toastQueue: []
property string currentDetails: ""
property bool hasDetails: false
property string wallpaperErrorStatus: ""
function showToast(message, level = levelInfo) {
function showToast(message, level = levelInfo, details = "") {
toastQueue.push({
"message": message,
"level": level
"level": level,
"details": details
})
if (!toastVisible)
processQueue()
}
function showInfo(message) {
showToast(message, levelInfo)
function showInfo(message, details = "") {
showToast(message, levelInfo, details)
}
function showWarning(message) {
showToast(message, levelWarn)
function showWarning(message, details = "") {
showToast(message, levelWarn, details)
}
function showError(message) {
showToast(message, levelError)
function showError(message, details = "") {
showToast(message, levelError, details)
}
function hideToast() {
toastVisible = false
currentMessage = ""
currentDetails = ""
hasDetails = false
currentLevel = levelInfo
toastTimer.stop()
resetToastState()
if (toastQueue.length > 0)
processQueue()
}
@@ -54,10 +60,31 @@ Singleton {
const toast = toastQueue.shift()
currentMessage = toast.message
currentLevel = toast.level
currentDetails = toast.details || ""
hasDetails = currentDetails.length > 0
toastVisible = true
toastTimer.interval = toast.level
=== levelError ? 5000 : toast.level === levelWarn ? 4000 : 3000
toastTimer.start()
resetToastState()
if (toast.level === levelError && hasDetails) {
toastTimer.interval = 8000
toastTimer.start()
} else {
toastTimer.interval = toast.level === levelError ? 5000 : toast.level === levelWarn ? 4000 : 3000
toastTimer.start()
}
}
signal resetToastState
function stopTimer() {
toastTimer.stop()
}
function restartTimer() {
if (hasDetails && currentLevel === levelError) {
toastTimer.interval = 8000
toastTimer.restart()
}
}
function clearWallpaperError() {