Both apps keep their inner settings in the filesystem, so the change on the package name wouldn’t prevent users to repurpose their settings on the new package.
I’m aware that things could be a bit difficult. Users would need to uninstall the APK or install the new one and have two different copies of the same problem. No idea about infrastructure/metadata/etc.
I wish there was an easier way to do this. I had to do this on my repo recently, and geometric weather also went through this.
Some limitations (for example, moving preferences) would need to be handled by the app directly, but maybe it’d be nice to add a tag to the metadata saying this has been replaced and listing the new app’s id
Is it possible to remove the old packages and keep just the newer ones?
It doesn’t need to be at the same time, but a couple of months after the new ones are pushed. Sounds a bit cleaner than having both packages on the same repo
Maybe problem is a big word. It just happens that the same package name is shared across 2 different build types. The issue is with Google lack of clarity of why an install failed.
Some people discover the app through F-Droid, catch a bug, report it and receive the answer: fixed in today’s nightly. Since fdroid releases the package on tagged releases some users might be tempted to check if their issues were, indeed, fixed. This would lead to the usual dance:
That could be solved with a different package name (as others app have, for instance Librera). People downloading from github could still use their f-droid client for other apps without the github package appearing as installed. F-Droid users could check if the last nightly fixed a bug without having to uninstall the APK first.
Keep in mind that KOReader is a very niche app, so the total number of users affected shouldn’t be too high. It just happens that we’re not in Play Store (and we won’t) and F-Droid is the easiest way of getting the apk installed on Android. Also the F-Droid build requires less permissions and is a bit more secure, so I would recommend it for most users that don’t want to be on the bleeding edge.
Thanks for the suggestion. That’s not an option. All the infrastructure for OTA updates relies on intercompatibility between stable and nightly channels.
Downgrading an APK is not possible without install the new one first :).
But that’s a valid point I didn’t think about. I guess we can give explicit hints on android.
diff --git a/frontend/ui/otamanager.lua b/frontend/ui/otamanager.lua
index 76de33d9..99513dcf 100644
--- a/frontend/ui/otamanager.lua
+++ b/frontend/ui/otamanager.lua
@@ -232,6 +232,19 @@ function OTAManager:fetchAndProcessUpdate()
BD.ltr(ota_version))
local update_ok_text = _("Update")
if ota_version < local_version then
+ if Device:isAndroid() then
+ UIManager:show(ConfirmBox:new{
+ text = T(_("The currently installed version is newer than the available version.\nYou'll need to uninstall the app before installing a previous version\n. Download anyways?\nInstalled version: %1\nAvailable version: %2"),
+ BD.ltr(local_version),
+ BD.ltr(ota_version))
+ ok_text = _("Download"),
+ ok_callback = function()
+ Device:openLink(link)
+ end,
+ })
+ return
+ end
update_message = T(_("The currently installed version is newer than the available version.\nWould you still like to continue and downgrade?\nInstalled version: %1\nAvailable version: %2"),
BD.ltr(local_version),
BD.ltr(ota_version))
KOReader was updated to last version v2021.06/8409. The new package name is “org.koreader.launcher.fdroid”. I guess it needs a new metadata and deprecate the old one. Could somebody take care of it or shall I open a request in gitlab? Which repo?
Coolreader was changed too in master but a new release wasn’t tagged yet.