First installed from Izzy (it's just the developer signed and released APK from Github)
Then uninstalled
Then installed from F-Droid
They can't both be signed by the same key.
please upload images directly to the issue so that they show up inline.
username-removed-25042changed title from 0.103-alpha2 - App versions mixed up to Apk "Installed" status is confusing when same version code provided by different signed apks
changed title from 0.103-alpha2 - App versions mixed up to Apk "Installed" status is confusing when same version code provided by different signed apks
This is the correct behaviour, but I understand why it is confusing. As such I've renamed and left on the 0.104 milestone. The logic is:
For each item in the versions list,
Check if the version code is installed or not (ignoring signature for now)
If uninstalled, display "Not installed"
If installed:
If the signing key of the item in the version list is the same as the installed apk, display "Installed". This is happening correctly for version "Version 1.4" from F-Droid in your screenshot.
If the signing key is different, display "Installed (from ...)" where "..." is given to us by the Android system. If we can't figure out where it was installed from, display "Unknown source". This is also happening correctly in your screenshot.
I'm not sure what we should be displaying here (i.e. for your "Version 1.4" from the IzzyOnDroid repo), but it is clearly confusing right now.
I would think that: if it's "installed" for one repo with a matching key, all the other should be "not installed". IIRC, the old UI behave like this, but I did not test with this app/repo yet.
Hmm, you are right that the best thing is probably to show "Not installed". I believe it worked like this in the old UI too.
Given the nature of the problem here, I'm going to close this as duplicate of #740 (closed). Currently we only identify apps by packageName + versionCode which is why we have this problem. When we identify them only by their hash, this should automatically get resolved.