Closed freundTech closed 5 years ago
Are you telling me that the app actually works on non-Mifare devices?
I guess. App store shows my phone as unsupported (LG G4), but after installing it manually it works.
EDIT: https://www.shopnfc.it/en/content/7-nfc-compatibility Shows LG G4 as not supporting Mifare Classic, but the app worked without problems.
So what's your model alias? (Huge list on https://www.devicespecifications.com/en/model/52f833d1) Maybe I can dig up if this is a model variation. I'd really not want to list the app as compatible with devices and then people install it and it does not work. And the Mifare bit is the one that actually matters here. And I can totally imagine LG shipping with different NFC chips.
(Don't get me wrong, I like that someone shows up with commits. :)
Let's maybe split this pull request into two: One for the design/build system fixes (although two would be neater there too) and one for the manifest compatibility change.
I googled around a bit and it looks like there are multiple devices out there that support Mifare Classic without reporting com.nxp.mifare. Maybe a better option would be to set it to optional, then check on first startup and display a warning if it's not supported.
That would also be a lot more useful to people with unsupported phones than play store just telling them that the app can't be installed without giving a reason.
I'll split up the PR.
I'm not a fan of a hand-waivy "there are multiple devices out there" and then offer the app to all NFC-capable devices, many of which can't support the app. Model and build numbers would be most helpful to get the records fixed. (And G4 is unfortunately not a model number, because SKUs differ by country/region/feature set.)
I specifically found mentions online of devices supporting mifare classic, but not reporting com.nxp.mifare for LG G4 (h815, which is the same I have), HTC One X, Google Pixel 2 and Xperia Z2 (D6543)
This post https://stackoverflow.com/a/32760130 also mentions many vendors not setting it correctly.
I've sent a pull request with the build system and will send the rest after that one is merged to prevent merge conflicts.
LG G4 is supported according to Play Store's Device Catalog. Unfortunately the code name listed is "p1". There are unsupported devices that are named similarly (like G4s/G4c) and supported ones that are similar (G4 Beat).
Now I suppose I could test out if that's really the case with the Pixel 2. But then again, while that Stack Overflow post is accurate "many vendors don't" is again too hand-wavy for me. For 100% of the previous cases the device did not actually support Mifare Classic.
Turns out it even works with the Pixel (2016) and is just installable from the Play Store. Which also means I have a development platform again. I'll try to take some time over the weekend to look at this. Previously all my devices were (thought to be) incompatible, so there's that. :)
Also it seems it needs to be built against a new SDK version because otherwise you get a warning on startup when on P. Oh well.
So this needs some rebasing and retitling now to be confined to the design changes, I think?
Closing this as the project is obsolete due to the new KITCard system not publishing any specs and the app hence having been depublished.
Should fix #11, #25 and #27. Also makes #26 easy.