supl/locationsuplfw/settingsapi/src/epos_csuplsettingsnotifier.cpp
branchRCL_3
changeset 44 2b4ea9893b66
parent 0 667063e416a2
child 45 6b6920c56e2f
equal deleted inserted replaced
42:02ba3f1733c6 44:2b4ea9893b66
    88         TInt event;
    88         TInt event;
    89         iRepository->Get(KSuplSettingsDBEvent, event);
    89         iRepository->Get(KSuplSettingsDBEvent, event);
    90         TReal slpID;
    90         TReal slpID;
    91         iRepository->Get(KSuplSettingsDBChangedSLPId, slpID);
    91         iRepository->Get(KSuplSettingsDBChangedSLPId, slpID);
    92         
    92         
    93 
    93         MSuplSettingsObserver::TSuplSettingsEventType eventType = MSuplSettingsObserver::ESuplSettingsEventUnspecified;
    94         MSuplSettingsObserver::TSuplSettingsEventType eventType = (MSuplSettingsObserver::TSuplSettingsEventType)event;
    94         switch(event)
       
    95             {
       
    96             case MSuplSettingsObserver::ESuplSettingsDBAddEvent:
       
    97             case MSuplSettingsObserver::ESuplSettingsDBAddEvent+1 :
       
    98                 {
       
    99                 eventType = MSuplSettingsObserver::ESuplSettingsDBAddEvent;
       
   100                 }
       
   101                 break;
       
   102             case MSuplSettingsObserver::ESuplSettingsDBDeleteEvent:
       
   103             case MSuplSettingsObserver::ESuplSettingsDBDeleteEvent+1 :
       
   104                 {
       
   105                 eventType = MSuplSettingsObserver::ESuplSettingsDBDeleteEvent;
       
   106                 }
       
   107                 break;
       
   108             case MSuplSettingsObserver::ESuplSettingsDBUpdateEvent:
       
   109             case MSuplSettingsObserver::ESuplSettingsDBUpdateEvent+1 :
       
   110                 {
       
   111                 eventType = MSuplSettingsObserver::ESuplSettingsDBUpdateEvent;
       
   112                 }
       
   113                 break;
       
   114             default:                
       
   115                 eventType = MSuplSettingsObserver::ESuplSettingsEventUnspecified;
       
   116                 break;
       
   117             
       
   118             }
       
   119         
    95         iObserver.HandleSuplSettingsChangeL(eventType,slpID);
   120         iObserver.HandleSuplSettingsChangeL(eventType,slpID);
    96         }
   121         }
    97     else
   122     else
    98         {
   123         {
    99         TInt usage;
       
   100 
       
   101         iRepository->Get(KSuplSettingsUsage, usage);
       
   102 
       
   103         if (iUsage != usage) //check if there was a change in the Supl usage value in the cen rep
       
   104             iObserver.HandleSuplSettingsChangeL(MSuplSettingsObserver::ESuplSettingsEventSuplUsageChange);
       
   105         else //else check if any of the other config parameters changed
       
   106             {
       
   107             TInt fallBackValue;
   124             TInt fallBackValue;
   108             TInt fallBackTimerValue;
   125             TInt fallBackTimerValue;
   109             TBuf<KMaxStrlen> imsi;
   126             TBuf<KMaxStrlen> imsi;
       
   127             TInt triggerServiceStatus;
       
   128             
   110             iRepository->Get(KSuplSettingsFallBack,fallBackValue);
   129             iRepository->Get(KSuplSettingsFallBack,fallBackValue);
   111             iRepository->Get(KSuplSettingsFallBackTimer,fallBackTimerValue);
   130             iRepository->Get(KSuplSettingsFallBackTimer,fallBackTimerValue);
   112             iRepository->Get(KSuplSettingsIMSI,imsi);
   131             iRepository->Get(KSuplSettingsIMSI,imsi);
       
   132             iRepository->Get(KSuplSettingsTriggerServiceStatus,triggerServiceStatus);
       
   133             
       
   134             if(triggerServiceStatus != iTriggerServiceStatus )
       
   135             {
       
   136             	iObserver.HandleSuplTriggerStatusChangeL((CSuplSettings::TSuplTriggerStatus)triggerServiceStatus);
       
   137             }
       
   138             
   113             if(fallBackValue != iFallBackValue || fallBackTimerValue != iFallBackTimerValue || imsi.Compare(*iImsi))
   139             if(fallBackValue != iFallBackValue || fallBackTimerValue != iFallBackTimerValue || imsi.Compare(*iImsi))
   114                 iObserver.HandleSuplSettingsChangeL(MSuplSettingsObserver::ESuplSettingsEventCommParameterChange);
   140                 iObserver.HandleSuplSettingsChangeL(MSuplSettingsObserver::ESuplSettingsEventCommParameterChange);
   115             }
   141             
   116         }
   142         }
   117     StartListening();
   143     StartListening();
   118     }
   144     }
   119 
   145 
   120 // ---------------------------------------------------------
   146 // ---------------------------------------------------------
   157         // Request for notification for DB field change
   183         // Request for notification for DB field change
   158         iRepository->NotifyRequest(KSuplSettingsDBEvent, iStatus);
   184         iRepository->NotifyRequest(KSuplSettingsDBEvent, iStatus);
   159         }
   185         }
   160     else
   186     else
   161         {
   187         {
   162         TInt usage;
       
   163         TBuf<KMaxStrlen> imsi;
   188         TBuf<KMaxStrlen> imsi;
   164         iRepository->Get(KSuplSettingsUsage, usage);
       
   165         iRepository->Get(KSuplSettingsFallBack,iFallBackValue);
   189         iRepository->Get(KSuplSettingsFallBack,iFallBackValue);
   166         iRepository->Get(KSuplSettingsFallBackTimer,iFallBackTimerValue);
   190         iRepository->Get(KSuplSettingsFallBackTimer,iFallBackTimerValue);
   167         iRepository->Get(KSuplSettingsIMSI,imsi);
   191         iRepository->Get(KSuplSettingsIMSI,imsi);
       
   192         iRepository->Get(KSuplSettingsTriggerServiceStatus,iTriggerServiceStatus);
       
   193         
   168         if(iImsi)
   194         if(iImsi)
   169             iImsi->Des() = imsi;
   195             iImsi->Des() = imsi;
   170         iUsage = (CSuplSettings::TSuplSettingsUsage) usage;
   196         
   171 
       
   172         // Request for notification for any field change
   197         // Request for notification for any field change
   173         iRepository->NotifyRequest(0x00000000, 0x00000000, iStatus);
   198         iRepository->NotifyRequest(0x00000000, 0x00000000, iStatus);
   174         }
   199         }
   175     
   200     
   176     SetActive();
   201     SetActive();