mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-29 07:52:50 -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
|
if (searchQuery.length === 0) {
|
||||||
apps = apps.sort(function(a, b) {
|
apps = apps.sort(function(a, b) {
|
||||||
var aId = a.id || (a.execString || a.exec || "");
|
var aId = a.id || (a.execString || a.exec || "");
|
||||||
var bId = b.id || (b.execString || b.exec || "");
|
var bId = b.id || (b.execString || b.exec || "");
|
||||||
var aUsage = appUsageRanking[aId] ? appUsageRanking[aId].usageCount : 0;
|
var aUsage = appUsageRanking[aId] ? appUsageRanking[aId].usageCount : 0;
|
||||||
var bUsage = appUsageRanking[bId] ? appUsageRanking[bId].usageCount : 0;
|
var bUsage = appUsageRanking[bId] ? appUsageRanking[bId].usageCount : 0;
|
||||||
if (aUsage !== bUsage)
|
if (aUsage !== bUsage)
|
||||||
return bUsage - aUsage;
|
return bUsage - aUsage;
|
||||||
// Higher usage first
|
return (a.name || "").localeCompare(b.name || "");
|
||||||
return (a.name || "").localeCompare(b.name || ""); // Alphabetical fallback
|
});
|
||||||
});
|
}
|
||||||
// Convert to model format and populate
|
// Convert to model format and populate
|
||||||
apps.forEach((app) => {
|
apps.forEach((app) => {
|
||||||
if (app)
|
if (app)
|
||||||
|
|||||||
@@ -55,7 +55,33 @@ Singleton {
|
|||||||
scoreFn: r => {
|
scoreFn: r => {
|
||||||
var nameScore = r[0] ? r[0].score : 0
|
var nameScore = r[0] ? r[0].score : 0
|
||||||
var commentScore = r[1] ? r[1].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
|
limit: 50
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user