Telephony: Remove CdmaLteUicc objects
-Pass IccCard object to GsmMmiCode -Create IccCardProxy -Make IccCard an interface and pass instance of IccCardProxy to external applications (PhoneApp). IccCardProxy will use internal UiccCard to map Icc requests to current active application on UiccCard to maintain backwards compatibility for external applications -Add documentation to UiccController The primary advantage of UiccController is that we can work with multiple uicc applications at the same time. And that is a requirement for modes like Cdma/Lte. The existing code supports Cdma/Lte only partially and with guessing on modem side. However, some things modem can guess, while others - it can't. For instance, when a user tries to edit the fdn list the current code will pass ef_id for fdn (0x6F3B). But the modem will have no clue which fdn list the user wants to edit (csim or usim, both have path 7FFF), and it's impossible for modem to guess correctly all the time. All the modem can do is try to be consistent and hope another device is doing same things. Imagine you bring your card from another Cdma/Lte device to your new Cdma/Lte device: if this modem uses different fdn file, it won't work as all existing entries won't be there. Another example is when the modem's guess is wrong for files like csim/ef_li (7FFF 6F3A) versus usim/ef_adn (7FFF 6F3A). They have same ef_ids so Android really should pass aid of the app it wants to access. Without aids there is no way modem can know for sure which file Android wants to read! However, in the current code even Android doesn't know which aid it wants to read file from since CdmaLteRecords has only 1 aid. All of these problems cause more and more hacks, both in the modem and in Android side. UiccController cleans up current code and provides framework to work with multiple Uicc applications at the same time. Change-Id: I60216887b14140bdf833a8ed579ba16cad932bdc
Loading
Please register or sign in to comment