OSDN Git Service

Add icc application status in simulated_icc
authorXia Wang <xiaw@google.com>
Fri, 10 Sep 2010 00:46:54 +0000 (17:46 -0700)
committerXia Wang <xiaw@google.com>
Fri, 10 Sep 2010 02:42:01 +0000 (19:42 -0700)
Change-Id: I926db934a2f09b03df6100dc0fcfbdd4b470ca9a

mock-ril/src/cpp/requests.cpp
mock-ril/src/js/ril_vars.js
mock-ril/src/js/simulated_icc.js
mock-ril/src/js/simulated_radio.js

index b28809d..5ef894d 100644 (file)
@@ -464,13 +464,18 @@ void testRequests(v8::Handle<v8::Context> context) {
                                (void *)0x12345677);
             }
             {
+                const int data[1] = { 1 };
+                testRilRequest(context, RIL_REQUEST_GET_SIM_STATUS, data, sizeof(data),
+                               (void *)0x12345677);
+            }
+            {
                 RilRequestWorkerQueue *rwq = new RilRequestWorkerQueue(context);
                 if (rwq->Run() == STATUS_OK) {
                     const int data[1] = { 1 };
                     rwq->AddRequest(RIL_REQUEST_SCREEN_STATE,
                                     data, sizeof(data), (void *)0x1234567A);
                     rwq->AddRequest(RIL_REQUEST_SIGNAL_STRENGTH,
-                                      data, sizeof(data), (void *)0x1234567A);
+                                    data, sizeof(data), (void *)0x1234567A);
                     // Sleep to let it be processed
                     v8::Unlocker unlocker;
                     sleep(3);
index 29e9f40..e50b42a 100644 (file)
@@ -44,6 +44,76 @@ var RIL_E_FDN_CHECK_FAILURE = 14;               /* command failed because recipi
                                                    list */
 var RIL_E_ILLEGAL_SIM_OR_ME = 15;               /* network selection failed due to */
 
+var CARD_MAX_APPS = 8;
+
+/**
+ * Icc card state
+ */
+var CARDSTATE_ABSENT   = 0;
+var CARDSTATE_PRESENT  = 1;
+var CARDSTATE_ERROR    = 2;
+
+/**
+ * RIL_PersoSubState
+ */
+var PERSOSUBSTATE_UNKNOWN                   = 0; /* initial state */
+var PERSOSUBSTATE_IN_PROGRESS               = 1; /* in between each lock transition */
+var PERSOSUBSTATE_READY                     = 2; /* when either SIM or RUIM Perso is finished
+                                                    since each app can only have 1 active perso
+                                                    involved */
+var PERSOSUBSTATE_SIM_NETWORK               = 3;
+var PERSOSUBSTATE_SIM_NETWORK_SUBSET        = 4;
+var PERSOSUBSTATE_SIM_CORPORATE             = 5;
+var PERSOSUBSTATE_SIM_SERVICE_PROVIDER      = 6;
+var PERSOSUBSTATE_SIM_SIM                   = 7;
+var PERSOSUBSTATE_SIM_NETWORK_PUK           = 8; /* The corresponding perso lock is blocked */
+var PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK    = 9;
+var PERSOSUBSTATE_SIM_CORPORATE_PUK         = 10;
+var PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK  = 11;
+var PERSOSUBSTATE_SIM_SIM_PUK               = 12;
+var PERSOSUBSTATE_RUIM_NETWORK1             = 13;
+var PERSOSUBSTATE_RUIM_NETWORK2             = 14;
+var PERSOSUBSTATE_RUIM_HRPD                 = 15;
+var PERSOSUBSTATE_RUIM_CORPORATE            = 16;
+var PERSOSUBSTATE_RUIM_SERVICE_PROVIDER     = 17;
+var PERSOSUBSTATE_RUIM_RUIM                 = 18;
+var PERSOSUBSTATE_RUIM_NETWORK1_PUK         = 19; /* The corresponding perso lock is blocked */
+var PERSOSUBSTATE_RUIM_NETWORK2_PUK         = 20;
+var PERSOSUBSTATE_RUIM_HRPD_PUK             = 21;
+var PERSOSUBSTATE_RUIM_CORPORATE_PUK        = 22;
+var PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK = 23;
+var PERSOSUBSTATE_RUIM_RUIM_PUK             = 24;
+
+/**
+ * RIL_AppState
+ */
+var APPSTATE_UNKNOWN               = 0;
+var APPSTATE_DETECTED              = 1;
+var APPSTATE_PIN                   = 2; /* If PIN1 or UPin is required */
+var APPSTATE_PUK                   = 3; /* If PUK1 or Puk for UPin is required */
+var APPSTATE_SUBSCRIPTION_PERSO    = 4; /* perso_substate should be look at
+                                           when app_state is assigned to this value */
+var APPSTATE_READY                 = 5;
+
+/**
+ * RIL_PinState
+ */
+var PINSTATE_UNKNOWN              = 0;
+var PINSTATE_ENABLED_NOT_VERIFIED = 1;
+var PINSTATE_ENABLED_VERIFIED     = 2;
+var PINSTATE_DISABLED             = 3;
+var PINSTATE_ENABLED_BLOCKED      = 4;
+var PINSTATE_ENABLED_PERM_BLOCKED = 5;
+
+/**
+ * RIL_AppType
+ */
+var APPTYPE_UNKNOWN = 0;
+var APPTYPE_SIM     = 1;
+var APPTYPE_USIM    = 2;
+var APPTYPE_RUIM    = 3;
+var APPTYPE_CSIM    = 4;
+
 /**
  * RIL_CallState
  */
index a8fdd77..ee8e4d1 100644 (file)
@@ -25,12 +25,36 @@ function Icc() {
     var IMEI = '123456789012345';
     var IMEISV = '00';
 
+    function RilAppStatus(type, state, persoState, aidPtr, appLabelPtr, pin1R, curPin1, curPin2) {
+        this.appType = type;
+        this.appState = state;
+        this.persoSubstate = persoState;
+        this.aid = aidPtr;
+        this.appLabel = appLabelPtr;
+        this.pin1Replaced = pin1R;
+        this.pin1 = curPin1;
+        this.pint2 = curPin2;
+    }
+
     function RilCardStatus() {
-        this.cardState = 0;
-        this.universalPinState = 0;
+        this.cardState = CARDSTATE_PRESENT;
+        this.universalPinState = PINSTATE_UNKNOWN;
         this.gsmUmtsSubscriptionAppIndex = 0;
-        this.cdmaSubscriptionAppIndex = 0;
-        this.numApplications = 0;
+        this.cdmaSubscriptionAppIndex = CARD_MAX_APPS;
+        this.numApplications = 1;
+        this.applications = new Array(CARD_MAX_APPS);
+
+        // Initialize application status
+        for (i = 0; i < CARD_MAX_APPS; i++) {
+            var app = new RilAppStatus(APPTYPE_UNKNOWN, APPSTATE_UNKNOWN, PERSOSUBSTATE_UNKNOWN,
+                                       null, null, 0, PINSTATE_UNKNOWN, PINSTATE_UNKNOWN);
+            this.applications[i] = app;
+        }
+
+        // set gsm application status.
+        var gsmApp = new RilAppStatus(APPTYPE_SIM, APPSTATE_READY, PERSOSUBSTATE_READY, null, null,
+                                     0, PINSTATE_UNKNOWN, PINSTATE_UNKNOWN);
+        this.applications[this.gsmUmtsSubscriptionAppIndex] = gsmApp;
     }
 
     var cardStatus = new RilCardStatus();
@@ -43,6 +67,7 @@ function Icc() {
 
         var rsp = new Object();
         rsp.cardStatus = cardStatus;
+
         result.responseProtobuf = rilSchema[packageNameAndSeperator +
                                  'RspGetSimStatus'].serialize(rsp);
         return result;
index ad2a2d6..d2592fe 100644 (file)
@@ -315,6 +315,7 @@ function Radio() {
         }
         this.printCalls(calls);
 
+        print('after add the call');
         // Set call state to dialing
         simulatedRadioWorker.add(
                         {'reqNum' : REQUEST_UNSOL_CALL_STATE_CHANGED,
@@ -322,7 +323,7 @@ function Radio() {
                          'callIndex' : newCall.index,
                          'nextState' : CALLSTATE_DIALING});
         // Update call state to alerting after 1 second
-        simulatedRadioWorker.add(
+       simulatedRadioWorker.addDelayed(
                         {'reqNum' : REQUEST_UNSOL_CALL_STATE_CHANGED,
                          'callType' : OUTGOING,
                          'callIndex' : newCall.index,
@@ -574,7 +575,7 @@ function Radio() {
                 // they have the same scope
                 result = (this.radioDispatchTable[req.reqNum]).call(this, req);
             } catch (err) {
-                print('err = ' + err);
+                print('Radio:process err = ' + err);
                 print('Radio: Unknown reqNum=' + req.reqNum);
                 result.rilErrCode = RIL_E_REQUEST_NOT_SUPPORTED;
             }