mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-24 21:42:51 -05:00
fix app searching sorting with usage rankings
This commit is contained in:
@@ -76,17 +76,17 @@ Item {
|
||||
}
|
||||
}
|
||||
}
|
||||
// Sort apps by usage ranking, then alphabetically
|
||||
apps = apps.sort(function(a, b) {
|
||||
var aId = a.id || (a.execString || a.exec || "");
|
||||
var bId = b.id || (b.execString || b.exec || "");
|
||||
var aUsage = appUsageRanking[aId] ? appUsageRanking[aId].usageCount : 0;
|
||||
var bUsage = appUsageRanking[bId] ? appUsageRanking[bId].usageCount : 0;
|
||||
if (aUsage !== bUsage)
|
||||
return bUsage - aUsage;
|
||||
// Higher usage first
|
||||
return (a.name || "").localeCompare(b.name || ""); // Alphabetical fallback
|
||||
});
|
||||
if (searchQuery.length === 0) {
|
||||
apps = apps.sort(function(a, b) {
|
||||
var aId = a.id || (a.execString || a.exec || "");
|
||||
var bId = b.id || (b.execString || b.exec || "");
|
||||
var aUsage = appUsageRanking[aId] ? appUsageRanking[aId].usageCount : 0;
|
||||
var bUsage = appUsageRanking[bId] ? appUsageRanking[bId].usageCount : 0;
|
||||
if (aUsage !== bUsage)
|
||||
return bUsage - aUsage;
|
||||
return (a.name || "").localeCompare(b.name || "");
|
||||
});
|
||||
}
|
||||
// Convert to model format and populate
|
||||
apps.forEach((app) => {
|
||||
if (app)
|
||||
|
||||
@@ -55,7 +55,33 @@ Singleton {
|
||||
scoreFn: r => {
|
||||
var nameScore = r[0] ? r[0].score : 0
|
||||
var commentScore = r[1] ? r[1].score : 0
|
||||
return nameScore > 0 ? nameScore * 0.9 + commentScore * 0.1 : commentScore * 0.5
|
||||
var appName = r.obj.entry.name || ""
|
||||
var finalScore = 0
|
||||
|
||||
if (nameScore > 0) {
|
||||
var queryLower = query.toLowerCase()
|
||||
var nameLower = appName.toLowerCase()
|
||||
|
||||
if (nameLower === queryLower) {
|
||||
finalScore = nameScore * 100
|
||||
}
|
||||
else if (nameLower.startsWith(queryLower)) {
|
||||
finalScore = nameScore * 50
|
||||
}
|
||||
else if (nameLower.includes(" " + queryLower) || nameLower.includes(queryLower + " ") || nameLower.endsWith(" " + queryLower)) {
|
||||
finalScore = nameScore * 25
|
||||
}
|
||||
else if (nameLower.includes(queryLower)) {
|
||||
finalScore = nameScore * 10
|
||||
}
|
||||
else {
|
||||
finalScore = nameScore * 2 + commentScore * 0.1
|
||||
}
|
||||
} else {
|
||||
finalScore = commentScore * 0.1
|
||||
}
|
||||
|
||||
return finalScore
|
||||
},
|
||||
limit: 50
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user