chore: update sort direction and add comments

This commit is contained in:
CMK 2022-04-29 20:41:23 +08:00
parent f78da37915
commit b64b88883e
2 changed files with 10 additions and 7 deletions

View File

@ -109,7 +109,7 @@
<key>MastodonIntent.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>26</integer>
<integer>21</integer>
</dict>
<key>MastodonIntents.xcscheme_^#shared#^_</key>
<dict>
@ -124,12 +124,12 @@
<key>NotificationService.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>27</integer>
<integer>19</integer>
</dict>
<key>ShareActionExtension.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>28</integer>
<integer>20</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>

View File

@ -115,8 +115,11 @@ extension MastodonPickServerViewModel {
if self.mode == .signUp {
indexedServers = indexedServers.filter { !$0.approvalRequired }
}
// Note:
// sort by calculate last week users count
// and make medium size (~800) server to top
// group by language user preferred language first. Then sort by `totalUsers`
// group by language user preferred language first
var languageToServersMapping = OrderedDictionary<String, [Mastodon.Entity.Server]>()
for language in Locale.preferredLanguages {
let local = Locale(identifier: language)
@ -129,10 +132,10 @@ extension MastodonPickServerViewModel {
.sorted(by: { lh, rh in
let lhValue = abs(log2(800.0) - log2(Double(lh.lastWeekUsers)))
let rhValue = abs(log2(800.0) - log2(Double(rh.lastWeekUsers)))
return lhValue > rhValue
return lhValue < rhValue
})
}
// sort remains servers by `totalUsers`
// sort remains servers
let remainsServers = indexedServers
.filter { server in
return !languageToServersMapping.contains { _, servers in servers.contains(server) }
@ -140,7 +143,7 @@ extension MastodonPickServerViewModel {
.sorted(by: { lh, rh in
let lhValue = abs(log2(800.0) - log2(Double(lh.lastWeekUsers)))
let rhValue = abs(log2(800.0) - log2(Double(rh.lastWeekUsers)))
return lhValue > rhValue
return lhValue < rhValue
})
var _indexedServers: [Mastodon.Entity.Server] = []