make Latest Tab sort entries, replacing the existing SQL selection
We've received a lot of complaints about the latest screen since it started hiding some or sometimes most of the apps. So people start to rely on the empty search trick which is a shitty workaround: https://social.tchncs.de/@sadmin/104417784769275710
There's two-three ideas behind hiding/showing only certain things in the latest view, some of them aren't working very well:
- hide apps with incomplete metadata to showcase fancy f-droid client features as an initial impression
- encouraging upstreams to add more metadata such that their app is listed in latest
- show only apps which at least partly localized metadata for the user's language
is good idea but currently goes a too far. I makes the latest tab less useful because it sacrifices showing apps the user might actually be interested in for showing off f-droid client features. The filter implementation can be found here: https://gitlab.com/fdroid/fdroidclient/blob/master/app/src/main/java/org/fdroid/fdroid/views/main/WhatsNewViewBinder.java#L106 So it recognizes there are optional fields but then makes one of the fields mandatory, this isn't really helping anyone.
Didn't really work at all in my experience. At least not directly. What works is showing upstreams what kind of metadata they can add to F-Droid and how. And already doing that at app inclusion time where we have a checkbox now. Making these things a requirement for showing up in latest doesn't really seem to have an additional influence. (Case in point: I've been suggestion to the riot devs that adding store metadata to f-droid would be cool, and then later followed up that this will actually make their app show up in f-droid latest apps. Even after bringing that up with a few times and with different people from New Vector the answer was still "oh, yeah cool, we'll do that eventually" this is now ongoing for 2+ years for Nextcloud this is also still a TODO for mutliple years now.)
is done in a completely backward way currently that doesn't help users at all. If any non EN default locale is used then the latest view will hide all apps that have not localized anything. So what starts out as wanting to do good for non english users ends up hurting them because it just hides many apps from them, even if they are perfectly capable of undertsnading english and just prefer to use another locale if it's available. And even if they'd prefer to only look at apps which are localized into their language (at least the summary maybe) the current implementation gets out of it's way to not be helpful because it'll just show apps that are localized into any non English language...
My proposal is changing this to the following logic:
- Filter out apps which incomplete required metadata, where I define required metadata as follows:
- Make sure we actually filter the apps which would fail to show anything useful in one of the fields, i.e.
- When Summary is set to the default value of "Unknown Application" this is not sufficient
- An xml icon (see fdroidserver#344 (closed)) is as bad a no icon, because we can't display it.
- Everything else is actually optional (including whatsnew text) and we just point out to upstream devs on how to include all the optional bits
- Remove the broken localized condition and instead think about having an app wide toggle for requiring localized metadata being available in one of the users enabled locales. It might also make sense to think about just making this the default behaviour but I'd guess this would not be a great experience for users of less popular locales that way. I'd appreciate input from people who actually use a non-english locale here.