--- a/layers.sysdef.xml Wed Sep 15 12:40:28 2010 +0300
+++ b/layers.sysdef.xml Wed Oct 13 15:01:35 2010 +0300
@@ -14,11 +14,6 @@
mrp="" bldFile="&layer_real_source_path;/supl/locationomasuplprotocolhandler/asnpluginimplementation/group"
filter="dfs_build" name="lodo_locationsrv_supl_asnpluginimplementation>" />
</module>
- <module name="locationsupllocinfoconverter">
- <unit unitID="lodo.locationsrv.supl.locationsupllocinfoconverter"
- mrp="" bldFile="&layer_real_source_path;/supl/locationsupllocinfoconverter/group"
- filter="dfs_build" name="lodo_locationsrv_supl_locationsupllocinfoconverter" />
- </module>
<module name="asnpluginimplementationver2">
<unit unitID="lodo.locationsrv.supl.asnpluginimplementationver2"
mrp="" bldFile="&layer_real_source_path;/supl/locationomasuplprotocolhandler/asnpluginimplementationver2/group"
Binary file locationsystemui/locationsysui/help/data/xhtml.zip has changed
--- a/locationsystemui/locationsysui/locsuplsettingsui/data/locsuplservereditor.rss Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/data/locsuplservereditor.rss Wed Oct 13 15:01:35 2010 +0300
@@ -70,6 +70,10 @@
},
MENU_ITEM
{
+ command = ELocServerEditorChange; txt = qtn_loc_server_options_change; flags = EEikMenuItemAction;
+ },
+ MENU_ITEM
+ {
command = ELocServerEditorRemove; txt = qtn_loc_detail_options_delete; flags = EEikMenuItemSpecific;
},
MENU_ITEM
@@ -104,21 +108,6 @@
form = r_suplserver_editor_form;
}
-//----------------------------------------------------
-// RESOURCE DIALOG r_suplserver_editor_form_dialog_noap
-// Form dialog to create an event
-//----------------------------------------------------
-//
-RESOURCE DIALOG r_suplserver_editor_form_dialog_noap
- {
- flags = EEikDialogFlagNoDrag | EEikDialogFlagFillAppClientRect |
- EEikDialogFlagNoTitleBar | EEikDialogFlagButtonsRight |
- EEikDialogFlagCbaButtons | EEikDialogFlagNoBorder |
- EEikDialogFlagWait;
- buttons = r_suplserver_editor_options_edit_back;
- form = r_suplserver_editor_form_noap;
- }
-
//----------------------------------------------------
// RESOURCE CBA r_suplserver_editor_options_nomsk_back
// CBA for SUPL Settings UI view.
@@ -204,7 +193,7 @@
type = EEikCtEdwin;
prompt = qtn_loc_server_iap;
id = ELocSuplServerIdAccessPoint;
- itemflags = EEikDlgItemTakesEnterKey | EEikDlgItemOfferAllHotKeys | EEikDlgItemAsLabel | EEikEdwinReadOnly;
+ itemflags = EEikDlgItemTakesEnterKey | EEikDlgItemOfferAllHotKeys | EEikDlgItemAsLabel;
control = EDWIN
{
flags = EEikEdwinResizable | EEikEdwinReadOnly | EEikEdwinAvkonDisableCursor | EEikEdwinNoAutoSelection ;
@@ -241,57 +230,6 @@
}
//----------------------------------------------------
-// RESOURCE DIALOG r_suplserver_editor_form_noap
-// Form to create/view a server
-//----------------------------------------------------
-//
-RESOURCE FORM r_suplserver_editor_form_noap
- {
- flags = EEikFormUseDoubleSpacedFormat;
- items =
- {
- DLG_LINE
- {
- type = EEikCtEdwin;
- prompt = qtn_loc_server_address_name;
- id = ELocSuplServerIdServerAddr;
- itemflags = EEikDlgItemTakesEnterKey | EEikDlgItemOfferAllHotKeys;
- control = EDWIN
- {
- flags = EEikEdwinJustAutoCurEnd | EEikEdwinResizable | EEikEdwinNoLineOrParaBreaks ;
- width = 16;
- maxlength = 255;
- lines = 10;
- };
- },
-
- DLG_LINE
- {
- type = EEikCtEdwin;
- prompt = qtn_loc_server_usage;
- id = ELocSuplServerIdUsageInHomeNw;
- itemflags = EEikDlgItemTakesEnterKey;
- control = EDWIN
- {
- flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable |
- EEikEdwinNoAutoSelection | EEikEdwinReadOnly|
- EEikEdwinAvkonDisableCursor|EEikEdwinAvkonNotEditable |EEikEdwinDisplayOnly;
- // maxlength = ECalenAbsoluteMaxTextEditorLength;
- default_case = EAknEditorTextCase;
- allowed_case_modes = EAknEditorAllCaseModes;
- numeric_keymap = EAknEditorStandardNumberModeKeymap;
- special_character_table = R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG;
- avkon_flags = EAknEditorFlagUseSCTNumericCharmap |
- EAknEditorFlagDefault |
- EAknEditorFlagEnablePictographInput;
- // let Avkon decide which is maximum number of lines
- // It's based on layout.
- max_view_height_in_lines = 0;
- };
- }
- };
- }
-//----------------------------------------------------
// RESOURCE ARRAY r_suplserver_editor_usageinhomenw_array
// array for usage in homw nw pop-up dialog
//----------------------------------------------------
@@ -333,6 +271,33 @@
};
}
+//----------------------------------------------------
+// RESOURCE CBA r_suplserver_editor_options_define_back
+// CBA for SUPL Editor UI view.
+//----------------------------------------------------
+//
+RESOURCE CBA r_suplserver_editor_options_define_done
+ {
+ flags = 0;
+ buttons =
+ {
+ CBA_BUTTON
+ {
+ id = EAknSoftkeyOptions;
+ txt = text_softkey_option;
+ },
+ CBA_BUTTON
+ {
+ id = EAknSoftkeyDone;
+ txt = text_softkey_done;
+ },
+ CBA_BUTTON
+ {
+ id = ELocServerEditorMSKDefine;
+ txt = qtn_msk_define;
+ }
+ };
+ }
//----------------------------------------------------
// RESOURCE CBA r_suplserver_editor_options_change_done
--- a/locationsystemui/locationsysui/locsuplsettingsui/data/locsuplsettingsui.rss Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/data/locsuplsettingsui.rss Wed Oct 13 15:01:35 2010 +0300
@@ -43,6 +43,15 @@
{
}
+//----------------------------------------------------
+// r_loc_supl_iap_query
+// Confirmation Query prompt text for SUPL Settings
+//----------------------------------------------------
+//
+RESOURCE TBUF r_loc_supl_iap_query
+ {
+ buf = qtn_loc_supl_iap_query;
+ }
//----------------------------------------------------
// r_suplsettings_caption
@@ -174,12 +183,12 @@
{
items =
{
- MENU_ITEM
- {
- command = ELocSuplOpen;
- txt = qtn_loc_supl_options_open;
- flags = EEikMenuItemAction;
- },
+ MENU_ITEM
+ {
+ command = ELocSuplChange;
+ txt = qtn_loc_server_options_change;
+ flags = EEikMenuItemAction;
+ },
MENU_ITEM
{
command = ELocSuplClearSession;
@@ -221,7 +230,16 @@
buf = qtn_loc_supl_title;
}
-
+//------------------------------------------------------------------------------
+// r_loc_supl_use
+// List settings item description for SUPL settings usage.
+//------------------------------------------------------------------------------
+//
+RESOURCE TBUF r_loc_supl_use
+ {
+ buf = qtn_loc_supl_server_use;
+ }
+
//------------------------------------------------------------------------------
// r_loc_supl_server_detail
// List settings item caption for multiple SUPL servers
@@ -262,6 +280,76 @@
buf = qtn_loc_supl_multiple_services;
}
+//------------------------------------------------------------------------------
+// r_loc_supl_usage_settings
+// Settings page for manipulating SUPL settings usage.
+//------------------------------------------------------------------------------
+//
+RESOURCE AVKON_SETTING_PAGE r_loc_suplusage_settings
+ {
+ label = qtn_loc_supl_lbl_server_use;
+ softkey_resource = R_AVKON_SOFTKEYS_CANCEL;
+ type = EAknSetListBox;
+ editor_resource_id = r_loc_suplusage_settings_listbox;
+ }
+
+//------------------------------------------------------------------------------
+// r_loc_suplusage_settings_listbox
+// Set Settings text
+//------------------------------------------------------------------------------
+//
+RESOURCE LISTBOX r_loc_suplusage_settings_listbox
+ {
+ flags = EEikListBoxMultipleSelection;
+ }
+
+//------------------------------------------------------------------------------
+// r_loc_supl_automatic
+// Settings Item for SUPL usage
+// This value denotes that SUPL would be used automatically when the user is in his
+// home network. When the user is roaming he would be prompted with a query for
+// using SUPL.
+//------------------------------------------------------------------------------
+//
+RESOURCE TBUF r_loc_supl_automatic
+ {
+ buf = qtn_loc_supl_automatic;
+ }
+
+//------------------------------------------------------------------------------
+// r_loc_supl_automatic
+// Settings Item for SUPL usage
+// This value denotes that SUPL would be used automatically when the user is in his
+// home network. When the user is roaming he would be prompted with a query for
+// using SUPL.
+//------------------------------------------------------------------------------
+//
+RESOURCE TBUF r_loc_supl_home_automatic
+ {
+ buf = qtn_loc_supl_home_automatic;
+ }
+
+//------------------------------------------------------------------------------
+// r_loc_supl_ask
+// Settings Item for SUPL usage
+// This value denotes that the user would always be prompted before using SUPL.
+//------------------------------------------------------------------------------
+//
+RESOURCE TBUF r_loc_supl_ask
+ {
+ buf = qtn_loc_supl_ask;
+ }
+
+//------------------------------------------------------------------------------
+// r_loc_supl_disabled
+// Settings Item for SUPL usage
+// This value denotes that SUPL would not be used at all.
+//------------------------------------------------------------------------------
+//
+RESOURCE TBUF r_loc_supl_disabled
+ {
+ buf = qtn_loc_supl_disabled;
+ }
//------------------------------------------------------------------------------
// r_loc_supl_server_detail_title
@@ -313,7 +401,43 @@
buf = qtn_loc_server_iap;
}
-
+//------------------------------------------------------------------------------
+// r_loc_no_ap_defined
+// No IAP defined text
+//------------------------------------------------------------------------------
+//
+RESOURCE TBUF r_loc_no_ap_defined
+ {
+ buf = qtn_netw_info_no_iap_defined;
+ }
+
+//------------------------------------------------------------------------------
+// r_general_note
+// Note to be displayed when no IAPs are defined
+//------------------------------------------------------------------------------
+//
+RESOURCE DIALOG r_general_note
+ {
+ flags = EEikDialogFlagNoDrag | EEikDialogFlagNoTitleBar |
+ EEikDialogFlagCbaButtons | EEikDialogFlagWait;
+ buttons = R_AVKON_SOFTKEYS_EMPTY;
+ items =
+ {
+ DLG_LINE
+ {
+ type = EAknCtNote;
+ id = EGeneralNote;
+ control = AVKON_NOTE
+ {
+ layout = EGeneralLayout;
+ singular_label = "";
+ plural_label = "";
+ animation = R_QGN_NOTE_INFO_ANIM;
+ };
+ }
+ };
+ }
+
//------------------------------------------------------------------------------
// r_suplsettings_server_view
// SUPL Settings Server view
--- a/locationsystemui/locationsysui/locsuplsettingsui/group/locsuplsettings.mmp Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/group/locsuplsettings.mmp Wed Oct 13 15:01:35 2010 +0300
@@ -95,4 +95,5 @@
LIBRARY cmmanager.lib // For Connection Settings API
LIBRARY flogger.lib
+
// End of File
--- a/locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplservereditor.h Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplservereditor.h Wed Oct 13 15:01:35 2010 +0300
@@ -98,13 +98,7 @@
* Executes the Dialog
*/
TInt ExecuteLD();
-
- /**
- * Sets the value of iIsAccessPointDefined based on whether the
- * access point is preconfigured for a server
- * @param[in] aEnabled - Value to be set for the variable iIsAccessPointDefined
- */
- void SetAccessPointEnabled(TBool aEnabled);
+
public: // from MSuplServerEditorObserver
/*
@@ -288,11 +282,6 @@
* It determines if form is modified by user
*/
TBool iIsModified;
-
- /**
- * Determines whether the access point is preconfigured for the server
- */
- TBool iIsAccessPointDefined;
};
#endif // __LOCSUPLSERVER_EDITOR_H__
--- a/locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplsettingsadapter.h Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplsettingsadapter.h Wed Oct 13 15:01:35 2010 +0300
@@ -45,6 +45,17 @@
public MSuplSessionObserver
{
public:
+ /**
+ * SUPL Usage enumerations which display the order of display
+ * in the User interface
+ */
+ enum TLocSuplUsage
+ {
+ ELocSuplAutomatic = 0,
+ ELocSuplAutomaticatHome,
+ ELocSuplAlwaysAsk,
+ ELocSuplDisable
+ };
public:
/**
* Static Two phase contructor that instantiates the CLocSUPLSettingsAdapter
@@ -83,6 +94,33 @@
*/
void CancelInitialize();
+ /**
+ * Sets the SUPL Settings usage.
+ *
+ * @param aIndex Index of the SUPL settings usage item.
+ */
+ void SetSuplUsageL( const TLocSuplUsage aIndex );
+
+ /**
+ * Obtains the SUPL Settings usage.
+ *
+ * @param aSuplUsage SUPL settings usage string.
+ */
+ void GetSuplUsageL( TDes& aSuplUsage );
+
+ /**
+ * Obtains the SUPL usage
+ *
+ * @return The SUPL usage
+ */
+ TInt GetSuplUsage();
+
+ /**
+ * Obtains the Supl Settings usage index
+ *
+ * @return TLocSuplUsage SUPL settings usage index
+ */
+ TLocSuplUsage GetSuplUsageIndex();
/***************************************************************************
@@ -401,6 +439,14 @@
void GenerateHslpAddressFromImsi(TDes& aIMSIAddress );
+ public: // Accessor functions for SUPL settings usage strings
+ const TDesC& Automatic();
+
+ const TDesC& AutomaticAtHome();
+
+ const TDesC& AlwaysAsk();
+
+ const TDesC& Disable();
public:
@@ -444,6 +490,29 @@
*/
CSuplSettings* iSUPLSettings;
+ /**
+ * SUPL settings usage is automatic
+ * Owns
+ */
+ HBufC* iAutomatic;
+
+ /**
+ * SUPL settings usage is automatic in home network
+ * Owns
+ */
+ HBufC* iAutomaticatHome;
+
+ /**
+ * SUPL settings usage needs a user confirmation
+ * Owns
+ */
+ HBufC* iAsk;
+
+ /**
+ * SUPL is disabled.
+ * Owns.
+ */
+ HBufC* iDisable;
/**
* Observer for the specific SUPL session.
--- a/locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplsettingslbmodel.h Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplsettingslbmodel.h Wed Oct 13 15:01:35 2010 +0300
@@ -45,7 +45,8 @@
*/
enum TSUPLSettingsItemId
{
- ESUPLSettingsServersDetail = 0,
+ ESUPLSettingsUsage = 0,
+ ESUPLSettingsServersDetail,
ESUPLSettingsActiveSessions
};
@@ -111,6 +112,13 @@
*/
void ConstructL();
+ /**
+ * Packs the SUPL settings usage to the end of the buffer passed.
+ *
+ * @param aPtr Buffer to which the Supl settings usage point needs to be
+ * appended.
+ */
+ void AppendSuplUsage( TDes16& aPtr ) const;
/**
* Packs the Server Address to the end of the buffer passed.
@@ -141,6 +149,11 @@
*/
HBufC16* iServerDetailTitle;
+ /**
+ * Title text for SUPL usage.
+ * Owns.
+ */
+ HBufC16* iSuplUsageTitle;
/**
* SUPL Active Sessions count.
@@ -153,12 +166,22 @@
*/
HBufC16* iSuplServerDetail;
+ /**
+ * Default SUPL usage.
+ * Owns.
+ */
+ HBufC16* iDefaultSuplUsage;
/**
* Reference the SUPL Settings Engine
*/
CLocSUPLSettingsUiEngine& iEngine;
+ /**
+ * Boolean value to indicate whethere SUPL settings usage
+ * is present.
+ */
+ TBool iSuplUsagePresent;
/**
* Boolean value to indicate whether SUPL address field
--- a/locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplsettingsuiengine.h Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplsettingsuiengine.h Wed Oct 13 15:01:35 2010 +0300
@@ -39,6 +39,7 @@
class CLocSUPLServerEditor;
class MSuplServerEditorObserver;
class MLocSUPLSettingsSessionObserver;
+class CCmApplicationSettingsUi;
// Class Declaration
/**
@@ -50,7 +51,8 @@
* It further observers the SUPL Settings UI for any changes to the Settings
* values.
*/
-class CLocSUPLSettingsUiEngine : public MLocSUPLSettingsAdapterObserver
+class CLocSUPLSettingsUiEngine : public CActive,
+ public MLocSUPLSettingsAdapterObserver
{
public:
/**
@@ -83,7 +85,18 @@
*/
virtual ~CLocSUPLSettingsUiEngine();
+ /**
+ * Launches the confirmation query to select IAP
+ *
+ */
+ void SelectConnectionL();
+ /**
+ * Launches the Access Point Configurator dialog
+ *
+ */
+ void LaunchApConfiguratorL( TInt64 aSlpId,
+ MSuplServerEditorObserver* aEditorObserver );
/**
* Opens the exisitng server with its attributes
@@ -97,12 +110,29 @@
*/
TInt SlpCount();
+ /**
+ * Launches the SUPL Usage configurator
+ */
+ void LaunchSuplUsageConfiguratorL();
/**
* Closes the running Settings UI prematurely.
*/
void Close();
+ /**
+ * Obtains the SUPL Settings usage.
+ *
+ * @return TPtr16 SUPL settings usage.
+ */
+ TPtr16 GetSuplUsageL();
+
+ /**
+ * Obtains the SUPL usage
+ *
+ * @return The SUPL Usage value
+ */
+ TInt GetSuplUsage();
/**
* Creates a new server entry in Supl Settings.
@@ -288,15 +318,31 @@
void SetTempAPValue( TUint32 aAccessPoint);
/**
+ * Launches the IAP Dialog
+ */
+ void LaunchIAPDialogL( );
+
+ /**
* Generates IMSI address
*/
void GenerateHslpAddressFromImsi(TDes& aIMSIAddress );
+
public:
/**
* Inherited from MLocSUPLSettingsAdapterObserver
*/
void HandleSuplSettingsChangeL( TLocSUPLSettingsEvent aEvent );
+ protected:
+ /**
+ * Inherited from CActive
+ */
+ void RunL();
+
+ /**
+ * Inherited from CActive
+ */
+ void DoCancel();
private:
/**
@@ -319,12 +365,25 @@
TUint ConvertIAPNameToIdL( const TDesC& aIAPName );
/**
+ * Updates Access point for ALL SLPs which do not have AP defined.
+ *
+ * @param aAccessPoint Access point
+ */
+ void UpdateMissingIAPL(const TDesC& aAccessPoint );
+
+ /**
* Displays an Error note
*
* @param aError Error ID
*/
void DisplayErrorL( TInt aError );
+ /**
+ * Displays an Info note
+ *
+ * @param None
+ */
+ TInt ShowNoteL();
/**
* Returns value of last highlighted AP
@@ -343,6 +402,12 @@
*/
CLocSUPLSettingsAdapter* iSUPLSettingsAdapter;
+ /**
+ * Flag to denote whether any dialog is currently active
+ * Used in the Cancel method. If there are any requests
+ * outstanding then they have to be cancelled
+ */
+ TBool iDialogActive;
/**
* Temporary Buffer for returning values to the Accessor
@@ -363,6 +428,10 @@
*/
HBufC* iSettingsBuffer;
+ /**
+ * Pointer to the Settings Buffer
+ */
+ TPtr iSettingsBufferPtr;
/**
* Standard Text resolver for converting Error codes to
@@ -381,12 +450,28 @@
*/
TInt iLaunchParams;
+ /**
+ * Akn Global confirmation query
+ * Owns
+ */
+ CAknGlobalConfirmationQuery* iConfirmQuery;
+
+ /**
+ * Access point query
+ * Owns
+ */
+ CCmApplicationSettingsUi* iConnectionMgmtQuery;
/**
* Flag to denote whether access point selection requested or not
*/
TBool iRequestIapSelect;
+ /**
+ * SUPL Servers SLP ID to get and set the server attributes.
+ * Owns.
+ */
+ TInt64 iCurrentSlpId;
/**
* Supl Server Editor
@@ -394,13 +479,18 @@
*/
CLocSUPLServerEditor* iEditorDlg;
+ /**
+ * Editor Observer
+ * Owns
+ */
+ MSuplServerEditorObserver* iEditorObserver;
/*
* Current highlighted AP
* Set to -1 if no changes made in edit dialog box, Set to Uid of access
* point if changes made
*/
- TUint32 iTempAP;
+ TInt iTempAP;
};
--- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplservereditor.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplservereditor.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -69,7 +69,7 @@
TBool aIsEditable,
CLocSUPLSettingsUiEngine& aEngine,
TInt64 aSlpId
- ):iIsEditMode( aIsEditable ), iEngine( aEngine ), iSlpId( aSlpId ), iIsAccessPointDefined(EFalse)
+ ):iIsEditMode( aIsEditable ), iEngine( aEngine ), iSlpId( aSlpId )
{
if( aIsEditable )
{
@@ -184,10 +184,28 @@
case ELocSuplServerIdServerAddr:
{
aMenuPane->SetItemDimmed( ELocServerEditorDefine, ETrue );
+ aMenuPane->SetItemDimmed( ELocServerEditorChange, ETrue );
break;
}
case ELocSuplServerIdAccessPoint:
{
+ TInt isIapChanged = EFalse;
+ CEikEdwin* apSelector =
+ static_cast < CEikEdwin* > ( ControlOrNull( IdOfFocusControl() ) );
+ if( apSelector )
+ {
+ if( iIap->Length() > 0 )
+ isIapChanged = ETrue;
+ }
+
+ if( isIapChanged )
+ {
+ aMenuPane->SetItemDimmed( ELocServerEditorDefine, ETrue );
+ }
+ else
+ {
+ aMenuPane->SetItemDimmed( ELocServerEditorChange, ETrue );
+ }
break;
}
case ELocSuplServerIdUsageInHomeNw:
@@ -197,6 +215,8 @@
TBool editableFlag = ETrue;
if( iSlpId )
TRAP_IGNORE( iEngine.GetEditableFlagL( iSlpId, editableFlag ) );
+ if( editableFlag == EFalse )
+ aMenuPane->SetItemDimmed( ELocServerEditorChange, ETrue );
break;
}
@@ -234,6 +254,7 @@
}
aMenuPane->SetItemDimmed( ELocServerEditorDefine, ETrue );
+ aMenuPane->SetItemDimmed( ELocServerEditorChange, ETrue );
aMenuPane->SetItemDimmed( ELocServerEditorRemove, ETrue );
}
}
@@ -279,10 +300,22 @@
TRAP_IGNORE( iEngine.SetServerEnabledFlagL( iSlpId, ETrue ) );
break;
}
+ case ELocServerEditorDefine:
+ {
+ TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
+ break;
+ }
+ case ELocServerEditorChange:
case ELocServerEditorMSKChange:
{
CEikEdwin* usageInHomeNWPopupFieldText = (CEikEdwin*) Control(
ELocSuplServerIdUsageInHomeNw);
+ if (IdOfFocusControl() == ELocSuplServerIdAccessPoint)
+ {
+ TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
+ }
+ else
+ {
HBufC* string;
string = StringLoader::LoadLC(
R_LOC_SERVER_USAGEINHOMENETWORK_NO, iCoeEnv);
@@ -316,8 +349,9 @@
SetUsageinHomeNetwork(EFalse);
}
}
+ }
CleanupStack::PopAndDestroy(string);
- }
+ }
break;
}
case EAknCmdHelp:
@@ -429,6 +463,13 @@
retVal = EFalse;
break;
}
+ case ELocServerEditorMSKDefine:
+ {
+ TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
+ //dont close editor
+ retVal = EFalse;
+ break;
+ }
case ELocServerEditorMSKChange:
{
ProcessCommandL( ELocServerEditorMSKChange );
@@ -454,11 +495,9 @@
{
if( iIsNewServer )
{
- // iap name is always set as KNullDesC since defining the access point is
- // not allowed while creating a new server manually
TRAPD( err, iEngine.AddNewServerL(
iServerAddress->Des(),
- KNullDesC,
+ iIap->Des(),
iUsageInHomeNw ) );
if( err == KErrNone )
{
@@ -611,11 +650,11 @@
usageInHomeNWPopupFieldText->GetText(des);
if (!des.CompareC(string->Des()))
{
- iUsageInHomeNw = EFalse;
+ iUsageInHomeNw = ETrue;
}
else
{
- iUsageInHomeNw = ETrue;
+ iUsageInHomeNw = EFalse;
}
CleanupStack::PopAndDestroy(string);
}
@@ -721,18 +760,10 @@
// -----------------------------------------------------------------------------
//
TInt CLocSUPLServerEditor::ExecuteLD()
- {
- if (!iIsAccessPointDefined)
- {
- return CAknForm::ExecuteLD(R_SUPLSERVER_EDITOR_FORM_DIALOG_NOAP);
- }
- else
- {
- return CAknForm::ExecuteLD(R_SUPLSERVER_EDITOR_FORM_DIALOG);
- }
+ {
+ return CAknForm::ExecuteLD( R_SUPLSERVER_EDITOR_FORM_DIALOG );
}
-
// -----------------------------------------------------------------------------
// CLocSUPLServerEditor::HandleControlStateChangeL
// -----------------------------------------------------------------------------
@@ -785,6 +816,15 @@
DEBUG( + CLocSUPLServerEditor::LoadFormValuesFromDataL );
if( IsEditable() && iIsNewServer ) //if create new server
{
+ CEikEdwin* apSelector =
+ static_cast < CEikEdwin* > ( ControlOrNull( ELocSuplServerIdAccessPoint ) );
+ if( apSelector )
+ {
+ HBufC* apString = StringLoader::LoadL( R_LOC_SERVER_NONE );
+ apSelector->SetTextL( apString );
+ delete apString;
+ }
+ apSelector->DrawNow();
CEikEdwin* usageInHNWPopupFieldText = (CEikEdwin*) Control(
ELocSuplServerIdUsageInHomeNw);
@@ -830,7 +870,7 @@
{
// Error has occured
}
-
+
CEikEdwin* serverAddress =
static_cast < CEikEdwin* > ( ControlOrNull( ELocSuplServerIdServerAddr ) );
if( serverAddress )
@@ -841,24 +881,31 @@
serverAddress->DrawDeferred();
iServerAddress->Des().Copy( hslpAddr->Des() );
}
-
- if (iIsAccessPointDefined)
- {
- CEikEdwin* apSelector = static_cast<CEikEdwin*> (ControlOrNull(
- ELocSuplServerIdAccessPoint));
- if (apSelector)
- {
- apSelector->SetTextL(iapName);
- apSelector->DrawNow();
- iIap->Des().Copy(iapName->Des());
- }
- }
-
+
+ CEikEdwin* apSelector =
+ static_cast < CEikEdwin* > ( ControlOrNull( ELocSuplServerIdAccessPoint ) );
+ if( apSelector )
+ {
+ if( iapName->Length() > 0 )
+ {
+ apSelector->SetTextL( iapName );
+ }
+ else
+ {
+ HBufC* apString = StringLoader::LoadL( R_LOC_SERVER_NONE );
+ apSelector->SetTextL( apString );
+ delete apString;
+ }
+
+ apSelector->DrawNow();
+ iIap->Des().Copy( iapName->Des() );
+ }
+
CEikEdwin* usageInHNWPopupFieldText = (CEikEdwin*) Control(
ELocSuplServerIdUsageInHomeNw);
if (usageInHNWPopupFieldText)
{
- if (!usageInHomeNwFlag)
+ if (usageInHomeNwFlag)
SetUsageinHomeNetwork(EFalse);
else
SetUsageinHomeNetwork(ETrue);
@@ -943,6 +990,22 @@
}
case ELocSuplServerIdAccessPoint:
{
+ TInt isIapChanged = EFalse;
+ CEikEdwin* apSelector =
+ static_cast < CEikEdwin* > ( ControlOrNull( IdOfFocusControl() ) );
+ if( apSelector && iIap )
+ {
+ if( iIap->Length() > 0 )
+ isIapChanged = ETrue;
+ }
+ if( isIapChanged )
+ {
+ cba->SetCommandSetL( R_SUPLSERVER_EDITOR_OPTIONS_CHANGE_DONE );
+ }
+ else
+ {
+ cba->SetCommandSetL( R_SUPLSERVER_EDITOR_OPTIONS_DEFINE_DONE );
+ }
break;
}
case ELocSuplServerIdUsageInHomeNw:
@@ -1084,12 +1147,10 @@
if (!IsEditable())
{
if (focusControl == ELocSuplServerIdUsageInHomeNw
- || focusControl == ELocSuplServerIdServerAddr)
+ || ELocSuplServerIdServerAddr || ELocSuplServerIdAccessPoint)
{
ProcessCommandL(EAknFormCmdEdit);
}
- else
- return;
}
else if (aEventID == MEikDialogPageObserver::EDialogPageTapped)
{
@@ -1118,6 +1179,14 @@
}
return;
}
+ if (focusControl == ELocSuplServerIdAccessPoint)
+ {
+ if (iapEditor)
+ {
+ //Launch IAP Dialog
+ TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
+ }
+ }
}DEBUG( -CLocSUPLServerEditor::HandleDialogPageEventL );
}
@@ -1148,15 +1217,4 @@
CleanupStack::PopAndDestroy(string);
}
-// -----------------------------------------------------------------------------
-// CLocSUPLServerEditor::SetAccessPointEnabled
-//
-// -----------------------------------------------------------------------------
-//
-void CLocSUPLServerEditor::SetAccessPointEnabled (TBool aEnabled)
- {
- iIsAccessPointDefined = aEnabled;
- }
-
-
// End of file
--- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettings.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettings.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -543,8 +543,14 @@
iAppUi.ActivateLocalViewL( iSettingsViewId );
}
else if( ELocSUPLIAPSelection == iLaunchParams )
- {
- // Do nothing,since there is no access point selection
+ {
+ // Check if the User intended to Launch IAP confirmation
+ iSettingsEngine->SelectConnectionL();
+ }
+ else if( ELocSuplIAPDialog == iLaunchParams )
+ {
+ // Check if the User intended to Launch IAP Selection
+ iSettingsEngine->LaunchIAPDialogL();
}
else
{
--- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsadapter.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsadapter.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -58,6 +58,17 @@
delete iSUPLSettings;
iSUPLSettings = NULL;
+ delete iAutomatic;
+ iAutomatic = NULL;
+
+ delete iAutomaticatHome;
+ iAutomaticatHome = NULL;
+
+ delete iAsk;
+ iAsk = NULL;
+
+ delete iDisable;
+ iDisable = NULL;
DEBUG( - CLocSUPLSettingsAdapter::~CLocSUPLSettingsAdapter );
}
@@ -99,6 +110,11 @@
// Set the Observer for SUPL Sessions
iSUPLSettings->SetSessionObserverL( *this );
+ // Load the SUPL settings usage strings
+ iAutomatic = StringLoader::LoadL( R_LOC_SUPL_AUTOMATIC );
+ iAutomaticatHome = StringLoader::LoadL( R_LOC_SUPL_HOME_AUTOMATIC );
+ iAsk = StringLoader::LoadL( R_LOC_SUPL_ASK );
+ iDisable = StringLoader::LoadL( R_LOC_SUPL_DISABLED );
CActiveScheduler::Add( this );
DEBUG( - CLocSUPLSettingsAdapter::ConstructL );
@@ -131,7 +147,210 @@
Cancel();
}
+// ---------------------------------------------------------------------------
+// void CLocSUPLSettingsAdapter::SetSuplUsageL
+// ---------------------------------------------------------------------------
+//
+void CLocSUPLSettingsAdapter::SetSuplUsageL(
+ const CLocSUPLSettingsAdapter::TLocSuplUsage aIndex )
+ {
+ DEBUG( + CLocSUPLSettingsAdapter::SetSuplUsageL );
+ CSuplSettings::TSuplSettingsUsage value = CSuplSettings::ESuplUsageAlwaysAsk;
+ switch ( aIndex )
+ {
+ case ELocSuplAutomatic:
+ {
+ value = CSuplSettings::ESuplUsageAutomatic;
+ break;
+ }
+ case ELocSuplAutomaticatHome:
+ {
+ value = CSuplSettings::ESuplUsageHomeAutomatic;
+ break;
+ }
+ case ELocSuplAlwaysAsk:
+ {
+ value = CSuplSettings::ESuplUsageAlwaysAsk;
+ break;
+ }
+ case ELocSuplDisable:
+ {
+ value = CSuplSettings::ESuplUsageDisabled;
+ break;
+ }
+ default:
+ {
+ User::Leave( KErrNotFound );
+ break;
+ }
+ }
+ // Write back to the SUPL settings API
+ TInt ret = iSUPLSettings->SetSuplUsage( value );
+
+ // If the Set failed, then Leave with the corresponding Error code
+ if( ret )
+ {
+ User::Leave ( ret );
+ }
+ DEBUG( - CLocSUPLSettingsAdapter::SetSuplUsageL );
+ }
+
+// ---------------------------------------------------------------------------
+// void CLocSUPLSettingsAdapter::GetSuplUsageL
+// ---------------------------------------------------------------------------
+//
+void CLocSUPLSettingsAdapter::GetSuplUsageL( TDes& aSuplUsage )
+ {
+ DEBUG( + CLocSUPLSettingsAdapter::GetSuplUsageL );
+ CSuplSettings::TSuplSettingsUsage value = CSuplSettings::ESuplUsageAlwaysAsk;
+ User::LeaveIfError( iSUPLSettings->GetSuplUsage( value ));
+
+ switch ( value )
+ {
+ case CSuplSettings::ESuplUsageAutomatic:
+ {
+ if ( aSuplUsage.MaxLength() < iAutomatic->Des().Length())
+ {
+ User::Leave( KErrNoMemory );
+ }
+ aSuplUsage.Copy( *iAutomatic );
+ break;
+ }
+ case CSuplSettings::ESuplUsageHomeAutomatic:
+ {
+ if ( aSuplUsage.MaxLength() < iAutomaticatHome->Des().Length())
+ {
+ User::Leave( KErrNoMemory );
+ }
+ aSuplUsage.Copy( *iAutomaticatHome );
+ break;
+ }
+ case CSuplSettings::ESuplUsageAlwaysAsk:
+ {
+ if ( aSuplUsage.MaxLength() < iAsk->Des().Length())
+ {
+ User::Leave( KErrNoMemory );
+ }
+ aSuplUsage.Copy( *iAsk );
+ break;
+ }
+ case CSuplSettings::ESuplUsageDisabled:
+ {
+ if ( aSuplUsage.MaxLength() < iDisable->Des().Length())
+ {
+ User::Leave( KErrNoMemory );
+ }
+ aSuplUsage.Copy( *iDisable );
+ break;
+ }
+ default:
+ {
+ User::Leave( KErrNotSupported );
+ break;
+ }
+ }
+ DEBUG( - CLocSUPLSettingsAdapter::GetSuplUsageL );
+ }
+
+// ---------------------------------------------------------------------------
+// TLocSuplUsage CLocSUPLSettingsAdapter::GetSuplUsage
+// ---------------------------------------------------------------------------
+//
+TInt CLocSUPLSettingsAdapter::GetSuplUsage()
+ {
+ DEBUG( + CLocSUPLSettingsAdapter::GetSuplUsage TInt );
+ CSuplSettings::TSuplSettingsUsage value = CSuplSettings::ESuplUsageAlwaysAsk;
+ TInt error = iSUPLSettings->GetSuplUsage( value );
+ if ( error )
+ {
+ // If there is an error then return the default value
+ return CSuplSettings::ESuplUsageAlwaysAsk;
+ }
+ DEBUG( - CLocSUPLSettingsAdapter::GetSuplUsage TInt );
+ return value;
+ }
+
+// ---------------------------------------------------------------------------
+// TLocSuplUsage CLocSUPLSettingsAdapter::GetSuplUsageIndex
+// ---------------------------------------------------------------------------
+//
+CLocSUPLSettingsAdapter::TLocSuplUsage CLocSUPLSettingsAdapter::GetSuplUsageIndex()
+ {
+ DEBUG( + CLocSUPLSettingsAdapter::GetSuplUsageIndex );
+ TLocSuplUsage index = ELocSuplAutomatic;
+ CSuplSettings::TSuplSettingsUsage value = CSuplSettings::ESuplUsageAlwaysAsk;
+ if ( iSUPLSettings->GetSuplUsage( value ))
+ {
+ // If there is an error then return the default value.
+ return index;
+ }
+
+ switch ( value )
+ {
+ case CSuplSettings::ESuplUsageAutomatic:
+ {
+ index = ELocSuplAutomatic;
+ break;
+ }
+ case CSuplSettings::ESuplUsageHomeAutomatic:
+ {
+ index = ELocSuplAutomaticatHome;
+ break;
+ }
+ case CSuplSettings::ESuplUsageAlwaysAsk:
+ {
+ index = ELocSuplAlwaysAsk;
+ break;
+ }
+ case CSuplSettings::ESuplUsageDisabled:
+ {
+ index = ELocSuplDisable;
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+ return index;
+ }
+
+// ---------------------------------------------------------------------------
+// const TDesC& CLocSUPLSettingsAdapter::Automatic
+// ---------------------------------------------------------------------------
+//
+const TDesC& CLocSUPLSettingsAdapter::Automatic()
+ {
+ return *iAutomatic;
+ }
+
+// ---------------------------------------------------------------------------
+// const TDesC& CLocSUPLSettingsAdapter::AutomaticAtHome
+// ---------------------------------------------------------------------------
+//
+const TDesC& CLocSUPLSettingsAdapter::AutomaticAtHome()
+ {
+ return *iAutomaticatHome;
+ }
+
+// ---------------------------------------------------------------------------
+// const TDesC& CLocSUPLSettingsAdapter::AlwaysAsk
+// ---------------------------------------------------------------------------
+//
+const TDesC& CLocSUPLSettingsAdapter::AlwaysAsk()
+ {
+ return *iAsk;
+ }
+
+// ---------------------------------------------------------------------------
+// const TDesC& CLocSUPLSettingsAdapter::Disable
+// ---------------------------------------------------------------------------
+//
+const TDesC& CLocSUPLSettingsAdapter::Disable()
+ {
+ return *iDisable;
+ }
// ---------------------------------------------------------------------------
// void CLocSUPLSettingsAdapter::HandleSuplSettingsChangeL
--- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingscontainer.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingscontainer.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -283,7 +283,16 @@
case EEventEnterKeyPressed:
case EEventItemSingleClicked: //case EEventItemDoubleClicked:
{
- iSettingsView.HandleCommandL(ELocSuplMSKOpen);
+ // Settings element has been selected. Command has to be issued to
+ // change the settings configuration
+ if ( SelectedItemIndex() == 0 )
+ {
+ iSettingsView.HandleCommandL( ELocSuplMSKChange );
+ }
+ else if ( SelectedItemIndex() == 1 || SelectedItemIndex() == 2 )
+ {
+ iSettingsView.HandleCommandL( ELocSuplMSKOpen );
+ }
break;
}
default:
--- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingslbmodel.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingslbmodel.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -68,10 +68,14 @@
delete iServerDetailTitle;
iServerDetailTitle = NULL;
+ delete iSuplUsageTitle;
+ iSuplUsageTitle = NULL;
delete iSuplServerDetail;
iSuplServerDetail = NULL;
+ delete iDefaultSuplUsage;
+ iDefaultSuplUsage = NULL;
DEBUG( - CLocSUPLSettingsLBModel::~CLocSUPLSettingsLBModel );
}
@@ -144,7 +148,32 @@
ptr.Copy( KDefaultServerIPAddress );
}
-
+ // Reinitializing the flag value
+ flagValue = 0;
+ TRAPD( error, repository = CRepository::NewL( KCRUidOMASuplConfiguration ) );
+ if ( !error )
+ {
+ error = repository->Get( KOMASuplConfigurationSuplPermissionQueryUsage, flagValue );
+ if ( error || flagValue < 0 )
+ {
+ flagValue = 0;
+ }
+ delete repository;
+ repository = NULL;
+ }
+
+ // Check for SUPL Setting usage variationing.
+ if( flagValue )
+ {
+ iSuplUsagePresent = ETrue;
+
+ // Allocate and set the server ip address title field
+ iSuplUsageTitle = StringLoader::LoadL( R_LOC_SUPL_USE );
+
+ iDefaultSuplUsage = StringLoader::LoadL( R_AVKON_SELEC_SETT_VAL_FIELD_NONE );
+ // Default value can be used for this field as well
+ // So no need to have another variable.
+ }
DEBUG( - CLocSUPLSettingsLBModel::ConstructL );
}
@@ -160,16 +189,21 @@
CLocSUPLSettingsLBModel::ResolveSettingsItem( TInt aListboxIndex ) const
{
DEBUG( + CLocSUPLSettingsLBModel::ResolveSettingsItem );
- TSUPLSettingsItemId selectedItem = ESUPLSettingsServersDetail;
+ TSUPLSettingsItemId selectedItem = ESUPLSettingsUsage;
switch ( aListboxIndex )
{
case 0:
{
+ selectedItem = ESUPLSettingsUsage;
+ break;
+ }
+ case 1:
+ {
selectedItem = ESUPLSettingsServersDetail;
break;
}
- case 1:
+ case 2:
{
selectedItem = ESUPLSettingsActiveSessions;
break;
@@ -193,15 +227,27 @@
//
TInt CLocSUPLSettingsLBModel::MdcaCount() const
{
- DEBUG( + CLocSUPLSettingsLBModel::MdcaCount );
- // Initialize the count to 0
- TInt itemCount = 0;
-
- // Check for Server address
- iServerAddressPresent ? itemCount++ : itemCount;
- itemCount++; // For the third entry "Active sessions"
- DEBUG( - CLocSUPLSettingsLBModel::MdcaCount );
- return itemCount;
+ DEBUG( + CLocSUPLSettingsLBModel::MdcaCount );
+ // Initialize the count to 0
+ TInt itemCount = 0;
+
+ // Check for SUPL usage.
+ if ( iSuplUsagePresent )
+ {
+ itemCount++;
+ // Check if the usage value is disabled
+ if ( iEngine.GetSuplUsage() == CSuplSettings::ESuplUsageDisabled )
+ {
+ return itemCount;
+ }
+ // Check for Server address
+ iServerAddressPresent ? itemCount++ : itemCount;
+ }
+ itemCount++; // For the third entry "Active sessions"
+ // Check if the SUPL Usage value is Disabled
+ // If that is the case then only SUPL usage will be displayed
+ DEBUG( - CLocSUPLSettingsLBModel::MdcaCount );
+ return itemCount;
}
// ---------------------------------------------------------------------------
@@ -229,6 +275,11 @@
TSUPLSettingsItemId index = ResolveSettingsItem( aIndex );
switch( index )
{
+ case ESUPLSettingsUsage:
+ {
+ AppendSuplUsage( ptr );
+ break;
+ }
case ESUPLSettingsServersDetail:
{
AppendSuplServerDetail( ptr );
@@ -252,7 +303,41 @@
return iBuffer->Des();
}
-
+// ---------------------------------------------------------------------------
+// TPtrC16 CLocSUPLSettingsLBModel::AppendSuplServerDetail()
+// Packs the server address to the end of the buffer passed.
+//
+// @param aPtr Buffer to which the server address needs to be appended.
+// ---------------------------------------------------------------------------
+//
+void CLocSUPLSettingsLBModel::AppendSuplUsage( TDes& aPtr ) const
+ {
+ DEBUG( + CLocSUPLSettingsLBModel::AppendSuplUsage );
+ // Append the Title text
+ aPtr.Append( iSuplUsageTitle->Des() );
+
+ // Append the second tab
+ aPtr.Append( EKeyTab );
+
+ // Append the third tab
+ aPtr.Append( EKeyTab );
+
+ // Obtain the SUPL usage from the SUPL Settings Engine. If
+ // the settings is not set then a Not defined value would be
+ // displayed to the user
+ TPtr16 suplUsagePtr( NULL, 0 );
+ TRAPD( error, suplUsagePtr.Set( iEngine.GetSuplUsageL() ) );
+ if( error || !suplUsagePtr.Length() )
+ {
+ // Using the same string as SUPL settings AP
+ aPtr.Append( iDefaultSuplUsage->Des() );
+ }
+ else
+ {
+ aPtr.Append( suplUsagePtr );
+ }
+ DEBUG( - CLocSUPLSettingsLBModel::AppendSuplUsage );
+ }
// ---------------------------------------------------------------------------
// TPtrC16 CLocSUPLSettingsLBModel::AppendSuplServerDetail()
--- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsuiengine.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsuiengine.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -51,6 +51,7 @@
#include "locsuplservereditor.h"
#include "locsuplsessioneditor.h"
#include "locsupldebug.h"
+#include "locsettingsuiclient.h" // For the Launch parameter values
// Constants
const TInt KMaxBufferLength = 0x100;
@@ -63,9 +64,13 @@
//
CLocSUPLSettingsUiEngine::CLocSUPLSettingsUiEngine(
MLocSUPLSettingsUiEngObserver& aObserver )
- : iObserver( aObserver ),
+ : CActive( EPriorityStandard ),
+ iObserver( aObserver ),
iConversionBufferPtr( NULL, 0 ),
- iEditorDlg(NULL),
+ iSettingsBufferPtr( NULL, 0 ),
+ iConnectionMgmtQuery( NULL ),
+ iCurrentSlpId( -1 ),
+ iEditorObserver( NULL ),
iTempAP(-1)
{
// No implementation
@@ -79,7 +84,15 @@
CLocSUPLSettingsUiEngine::~CLocSUPLSettingsUiEngine()
{
DEBUG( + CLocSUPLSettingsUiEngine::~CLocSUPLSettingsUiEngine );
+ Cancel();
+ // Delete the Confirmation query
+ delete iConfirmQuery;
+ iConfirmQuery = NULL;
+
+ // Delete the ConnectionMgmt query
+ delete iConnectionMgmtQuery;
+ iConnectionMgmtQuery = NULL;
delete iSUPLSettingsAdapter;
iSUPLSettingsAdapter = NULL;
@@ -88,6 +101,8 @@
delete iConversionBuffer;
iConversionBuffer = NULL;
+ delete iSettingsBuffer;
+ iSettingsBuffer = NULL;
// Delete the Error handling utilities
delete iTextResolver;
@@ -142,12 +157,15 @@
iConversionBuffer = HBufC16::NewL( KMaxBufferLength );
iConversionBufferPtr.Set( iConversionBuffer->Des() );
+ iSettingsBuffer = HBufC::NewL( KMaxBufferLength );
+ iSettingsBufferPtr.Set( iSettingsBuffer->Des());
iTextResolver = CTextResolver::NewL( *( CCoeEnv::Static() ) );
// Create the SUPL Settings API adapter.
iSUPLSettingsAdapter = CLocSUPLSettingsAdapter::NewL( *this );
+ CActiveScheduler::Add( this );
DEBUG( - CLocSUPLSettingsUiEngine::ConstructL );
}
@@ -165,8 +183,244 @@
DEBUG( - CLocSUPLSettingsUiEngine::Initalize );
}
+void CLocSUPLSettingsUiEngine::SelectConnectionL()
+ {
+ DEBUG( + CLocSUPLSettingsUiEngine::SelectConnectionL );
+ if( iDialogActive || IsActive() || iConfirmQuery || iConnectionMgmtQuery )
+ {
+ User::Leave( KErrInUse );
+ }
+
+ // set the Launch type
+ iLaunchParams = ELocSUPLIAPSelection;
+
+ // In the case of a framework launching SUPL UI, the user is ignorant
+ // of the action. Hence, a confirmation dialog is popped up to intimate
+ // the user that he needs to configure SUPL settings.
+
+ iConfirmQuery = CAknGlobalConfirmationQuery::NewL();
+ CAknSDData* secondaryData = CAknSDData::NewL( KCatUidLocationSuplSettingsUi,
+ ECmdSuplSettingsMissing,
+ KNullDesC8 );
+
+ // Send the Confirmation query information to the Secondary display
+ // The ownership of 'secondaryData' is taken up by the Global confirmation query
+ iConfirmQuery->SetSecondaryDisplayData( secondaryData );
+
+ // Load the SUPL IAP confirmation query prompt text from the resource file
+ HBufC* promptText = StringLoader::LoadL( R_LOC_SUPL_IAP_QUERY );
+
+ // Display the Confirmation query.
+ iConfirmQuery->ShowConfirmationQueryL( iStatus,
+ *promptText,
+ R_AVKON_SOFTKEYS_YES_NO__YES,
+ R_QGN_NOTE_QUERY_ANIM );
+
+ SetActive();
+ delete promptText; //
+ promptText = NULL;
+ DEBUG( - CLocSUPLSettingsUiEngine::SelectConnectionL );
+ }
+// ---------------------------------------------------------------------------
+// void CLocSUPLSettingsUiEngine::LaunchApConfiguratorL
+// Launches the Access Point Configurator dialog
+//
+// ---------------------------------------------------------------------------
+//
+void CLocSUPLSettingsUiEngine::LaunchApConfiguratorL( TInt64 aSlpId,
+ MSuplServerEditorObserver* aEditorObserver )
+ {
+ DEBUG( + CLocSUPLSettingsUiEngine::LaunchApConfiguratorL );
+ iCurrentSlpId = aSlpId;
+ iEditorObserver = aEditorObserver;
+
+ if( iDialogActive )
+ {
+ User::Leave( KErrInUse );
+ }
+
+ // Zeroing the Temporary buffers so that it doesn't contain any
+ // left over value from the previous access
+ iSettingsBufferPtr.Zero();
+
+ // Obtain the UID for the selected Access point so that the configurator
+ // can be highlighted
+ TUint32 highlightUid( 0 );
+
+ // if AP value is NULL, or zero, no temp AP, all previous changes have been frozen.
+ TInt32 tempAP = GetTempAPValue();
+ if ( tempAP == -1)
+ {
+ // Obtain the Server address value from the SUPL settings
+ // API. If the value is set then it has to be shown to the user
+ // as the existing value when he tries to configure the UI
+ TRAP_IGNORE( iSUPLSettingsAdapter->GetIapNameL( iCurrentSlpId, iSettingsBufferPtr ) );
+
+ TRAPD( error, highlightUid = ConvertIAPNameToIdL( iSettingsBufferPtr ) );
+
+ if( error == KErrNotFound )
+ {
+ highlightUid = 0;
+ }
+ }
+ else
+ {
+ highlightUid = tempAP;
+ }
+
+ iConnectionMgmtQuery = CCmApplicationSettingsUi::NewL();
+
+ iDialogActive = ETrue;
+ TBool ret = EFalse;
+ TCmSettingSelection selectionUid;
+ selectionUid.iId = highlightUid;
+ selectionUid.iResult = CMManager::EConnectionMethod ;
+ TBearerFilterArray filter;
+ CleanupClosePushL( filter );
+
+ // Need access points for bearer type CSD and Packet data only
+ filter.AppendL( KUidCSDBearerType );
+ filter.AppendL( KUidPacketDataBearerType );
+
+ // Run CCmApplicationSettingsUi dialog only for Access points (Connection methods)
+ // selectionUid contains UID to be highlighted, on return it will contain UID of selected CM
+ TRAPD( error, ret =
+ iConnectionMgmtQuery->RunApplicationSettingsL(
+ selectionUid , CMManager::EShowConnectionMethods, filter
+ ) ); // | CMManager::EShowAlwaysAsk
+
+ iDialogActive = EFalse;
+ if( error == CMManager::KErrConnectionNotFound )
+ {
+ // No AP defined, Show Note
+ TRAP_IGNORE( ShowNoteL(); )
+ //User::Leave( error );
+ }
+ CleanupStack::PopAndDestroy( &filter );
+ delete iConnectionMgmtQuery;
+ iConnectionMgmtQuery = NULL;
+
+ if( ret )
+ {
+ SetTempAPValue(selectionUid.iId);
+ RCmManager cmManager;
+ cmManager.OpenLC();
+
+ RArray< TUint32 > cmArray;
+ HBufC* cmName = NULL;
+ RCmConnectionMethod method;
+ // Get all the CMs into cmArray
+ cmManager.ConnectionMethodL( cmArray, ETrue, EFalse );
+ CleanupClosePushL( cmArray );
+
+ // Get name of selected CM
+ TInt count = cmArray.Count();
+ for ( TInt i = 0; i < count; i++ )
+ {
+ if (selectionUid.iId == cmArray[i] )
+ {
+ method = cmManager.ConnectionMethodL( cmArray[i] );
+ CleanupClosePushL( method );
+ cmName = method.GetStringAttributeL( CMManager::ECmName );
+ CleanupStack::PushL( cmName );
+ iSettingsBufferPtr.Copy( cmName->Des() );
+ CleanupStack::PopAndDestroy( cmName );
+ CleanupStack::PopAndDestroy( &method );
+ break;
+ }
+ }
+ CleanupStack::PopAndDestroy( &cmArray );
+ CleanupStack::PopAndDestroy( &cmManager );
+
+ if( iEditorObserver )
+ {
+ iEditorObserver->UpdateIapL( iSettingsBufferPtr );
+ }
+ }
+
+ DEBUG( - CLocSUPLSettingsUiEngine::LaunchApConfiguratorL );
+ }
+
+// ---------------------------------------------------------------------------
+// void CLocSUPLSettingsUiEngine::LaunchSuplUsageConfiguratorL
+// Launches the SUPL Usage Configurator
+//
+// ---------------------------------------------------------------------------
+//
+void CLocSUPLSettingsUiEngine::LaunchSuplUsageConfiguratorL()
+ {
+ DEBUG( + CLocSUPLSettingsUiEngine::LaunchSuplUsageConfiguratorL );
+ if( iDialogActive )
+ {
+ User::Leave( KErrInUse );
+ }
+
+ // Allocate the descriptor array for Text settings for System
+ // of measurement
+ CDesCArrayFlat* items = new( ELeave ) CDesCArrayFlat( KNoofUsageSettings );
+ CleanupStack::PushL( items );
+
+ // Allocate all the Settings usage string
+
+ // Append the radio-button list items
+ items->AppendL( iSUPLSettingsAdapter->Automatic() );
+ items->AppendL( iSUPLSettingsAdapter->AutomaticAtHome() );
+ items->AppendL( iSUPLSettingsAdapter->AlwaysAsk() );
+ items->AppendL( iSUPLSettingsAdapter->Disable() );
+
+ // Obtain the current value for SUPL settings usage
+ // This would be used for setting the default value for
+ // the text settings page
+ TInt currentSettings = iSUPLSettingsAdapter->GetSuplUsageIndex();
+
+ CAknRadioButtonSettingPage* dlg =
+ new ( ELeave )CAknRadioButtonSettingPage( R_LOC_SUPLUSAGE_SETTINGS,
+ currentSettings,
+ items );
+ // Settings Outstanding flag is marked True to enable dismissal incase
+ // of a Cancel event
+ iDialogActive = ETrue;
+ if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
+ {
+ CLocSUPLSettingsAdapter::TLocSuplUsage newValue =
+ static_cast<CLocSUPLSettingsAdapter::TLocSuplUsage>( currentSettings );
+
+ iSUPLSettingsAdapter->SetSuplUsageL( newValue );
+ }
+
+ iDialogActive = EFalse;
+
+ // Free the items resource
+ CleanupStack::PopAndDestroy( items );
+ DEBUG( - CLocSUPLSettingsUiEngine::LaunchSuplUsageConfiguratorL );
+ }
+
+// ---------------------------------------------------------------------------
+// void CLocSUPLSettingsUiEngine::LaunchIAPDialogL
+// Launches the IAP Dialog
+//
+// ---------------------------------------------------------------------------
+//
+void CLocSUPLSettingsUiEngine::LaunchIAPDialogL( )
+ {
+ DEBUG( + CLocSUPLSettingsUiEngine::LaunchIAPDialogL );
+ if( iDialogActive || IsActive() || iConfirmQuery || iConnectionMgmtQuery )
+ {
+ User::Leave( KErrInUse );
+ }
+
+ // set the Launch type
+ iLaunchParams = ELocSuplIAPDialog;
+
+ // Self complete
+ SetActive();
+ TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, KErrNone);
+
+ DEBUG( - CLocSUPLSettingsUiEngine::LaunchIAPDialogL );
+ }
// ---------------------------------------------------------------------------
// void CLocSUPLSettingsUiEngine::Close
@@ -176,14 +430,59 @@
void CLocSUPLSettingsUiEngine::Close()
{
DEBUG( + CLocSUPLSettingsUiEngine::Close );
+ Cancel();
// Cancel the Initalization request. This call Cancels if there is an
// outstanding request. If not, does nothing
iSUPLSettingsAdapter->CancelInitialize();
+ // If any of the dialogs are active then issue a cancel event on the
+ // dialogs
+ if( iDialogActive )
+ {
+ TKeyEvent keyEvent;
+ keyEvent.iCode = EKeyCBA2;
+ keyEvent.iScanCode = EStdKeyDevice1;
+ keyEvent.iModifiers = EAllModifiers;
+ keyEvent.iRepeats = 0;
+ CCoeEnv* cCoeEnv = CCoeEnv::Static();
+
+ // Simulate a Cancel event on the running dialogs. The Simulated event
+ // is for the Left Soft Key.
+ // Ignore the error incase of a leave
+
+ TRAP_IGNORE( cCoeEnv->SimulateKeyEventL( keyEvent, EEventKey ) );
+ }
DEBUG( - CLocSUPLSettingsUiEngine::Close );
}
+// ---------------------------------------------------------------------------
+// TPtr16 CLocSUPLSettingsAdapter::GetSuplUsage
+// ---------------------------------------------------------------------------
+//
+TPtr16 CLocSUPLSettingsUiEngine::GetSuplUsageL()
+ {
+ DEBUG( + CLocSUPLSettingsUiEngine::GetSuplUsageL );
+ // Zeroing the Temporary buffers so that it doesn't contain any
+ // left over value from the previous access
+ iSettingsBufferPtr.Zero();
+ iConversionBufferPtr.Zero();
+
+ // Obtain the Settings values from the SUPL settings API
+ iSUPLSettingsAdapter->GetSuplUsageL( iSettingsBufferPtr );
+ iConversionBufferPtr.Copy( iSettingsBufferPtr );
+ DEBUG( - CLocSUPLSettingsUiEngine::GetSuplUsageL );
+ return iConversionBufferPtr;
+ }
+
+// ---------------------------------------------------------------------------
+// TInt CLocSUPLSettingsAdapter::GetSuplUsage
+// ---------------------------------------------------------------------------
+//
+TInt CLocSUPLSettingsUiEngine::GetSuplUsage()
+ {
+ return iSUPLSettingsAdapter->GetSuplUsage();
+ }
// ---------------------------------------------------------------------------
// void CLocSUPLSettingsUiEngine::HandleSuplSettingsChangeL
@@ -201,6 +500,92 @@
}
// ---------------------------------------------------------------------------
+// void CLocSUPLSettingsUiEngine::RunL()
+//
+// ---------------------------------------------------------------------------
+//
+void CLocSUPLSettingsUiEngine::RunL()
+ {
+ DEBUG( + CLocSUPLSettingsUiEngine::RunL );
+ // If the Confirmation query is present then we have to Pop up the
+ // IAP Selection dialog based on User Action
+ if( iConfirmQuery && iLaunchParams == ELocSUPLIAPSelection )
+ {
+ // Incase there has been a response from the User then the Key pressed
+ // is present in the iStatus variable
+ if( EAknSoftkeyYes == iStatus.Int() )
+ {
+ iObserver.HandleSettingsEventL(
+ MLocSUPLSettingsUiEngObserver::EIAPSelectionComplete );
+ }
+ else
+ {
+ iObserver.HandleSettingsEventL(
+ MLocSUPLSettingsUiEngObserver::EIAPSelectionCancelled );
+ }
+
+ // Destroy the IAP confirmation query handle
+ delete iConfirmQuery;
+ iConfirmQuery = NULL;
+ }
+ else if( iLaunchParams == ELocSuplIAPDialog ) // Launch IAP Dialog
+ {
+ // Launch Access Point dialog to get the access point
+ TRAPD(err, LaunchApConfiguratorL(KErrNotFound, NULL) );
+
+ // Update the Access points for all the Slp whose AP is missing.
+ if( KErrNone == err )
+ TRAP(err, UpdateMissingIAPL( iSettingsBufferPtr ) );
+
+ // Incase of any errors.
+ if( KErrNone == err )
+ {
+ iObserver.HandleSettingsEventL(
+ MLocSUPLSettingsUiEngObserver::EIAPSelectionComplete );
+ }
+ else
+ {
+ iObserver.HandleSettingsEventL(
+ MLocSUPLSettingsUiEngObserver::EIAPSelectionCancelled );
+ }
+ }
+ else
+ {
+ iObserver.HandleSettingsEventL(
+ MLocSUPLSettingsUiEngObserver::EIAPSelectionCancelled );
+ }
+
+ DEBUG( - CLocSUPLSettingsUiEngine::RunL );
+ }
+
+// ---------------------------------------------------------------------------
+// void CLocSUPLSettingsUiEngine::DoCancel()
+//
+// ---------------------------------------------------------------------------
+//
+void CLocSUPLSettingsUiEngine::DoCancel()
+ {
+ DEBUG( + CLocSUPLSettingsUiEngine::DoCancel );
+ if( iConfirmQuery )
+ {
+ // If the confirmation query is running Cancel the query
+ iConfirmQuery->CancelConfirmationQuery();
+
+ delete iConfirmQuery;
+ iConfirmQuery = NULL;
+
+ }
+
+ if( iConnectionMgmtQuery )
+ {
+ delete iConnectionMgmtQuery;
+ iConnectionMgmtQuery = NULL;
+ }
+
+ DEBUG( - CLocSUPLSettingsUiEngine::DoCancel );
+ }
+
+// ---------------------------------------------------------------------------
// void CLocSUPLSettingsUiEngine::GenerateHslpAddressFromImsi()
//
// ---------------------------------------------------------------------------
@@ -212,6 +597,56 @@
DEBUG( - CLocSUPLSettingsUiEngine::DoCancel );
}
+// ---------------------------------------------------------------------------
+// void CLocSUPLSettingsUiEngine::UpdateMissingIAPL()
+// Updates Access point for ALL SLPs which do not have AP defined.
+//
+// ---------------------------------------------------------------------------
+//
+void CLocSUPLSettingsUiEngine::UpdateMissingIAPL(const TDesC& aAccessPoint )
+ {
+ // return if there is no access point in aAccessPoint
+ if( aAccessPoint.Length() <=0 )
+ return;
+
+ RPointerArray<CServerParams> serverParamValues;
+ CleanupClosePushL( serverParamValues );
+
+ GetAllSlpL( serverParamValues );
+
+ HBufC* hslpAddr = HBufC::NewLC( KMaxHSLPAddrLen );
+ HBufC* iapName = HBufC::NewLC( KMaxIAPLen );
+ TInt64 slpId;
+ TBool enabledFlag, simChangeFlag, usageInHomeNwFlag, editFlag;
+
+ TInt count = serverParamValues.Count();
+ for( TInt i=0; i<count; i++ )
+ {
+ // Zero the buffer contents
+ hslpAddr->Des().Zero();
+ iapName->Des().Zero();
+
+ // Get Server detils
+ TInt errParams = serverParamValues[i]->Get(
+ slpId,
+ hslpAddr->Des(),
+ iapName->Des(),
+ enabledFlag,
+ simChangeFlag,
+ usageInHomeNwFlag,
+ editFlag
+ );
+
+ // Update IAP name if it is not present.
+ if( errParams == KErrNone && iapName->Length() <= 0 )
+ {
+ SetIapNameL( slpId, aAccessPoint );
+ }
+ }
+
+ CleanupStack::PopAndDestroy(2); // hslpAddr, iapName
+ CleanupStack::PopAndDestroy( &serverParamValues ); // serverParamValues
+ }
// ---------------------------------------------------------------------------
// TUint CLocSUPLSettingsUiEngine::ConvertIAPNameToIdL()
@@ -289,6 +724,33 @@
DEBUG( - CLocSUPLSettingsUiEngine::DisplayErrorL );
}
+// ---------------------------------------------------------------------------
+// void CLocSUPLSettingsUiEngine::ShowNoteL()
+// Displays No access point defined note
+//
+// @param None
+// ---------------------------------------------------------------------------
+//
+TInt CLocSUPLSettingsUiEngine::ShowNoteL()
+ {
+ DEBUG( + CLocSUPLSettingsUiEngine::ShowNoteL );
+ // Show Info Note "No Access Points Defined"
+ HBufC* tmp = StringLoader::LoadL( R_LOC_NO_AP_DEFINED );
+ CleanupStack::PushL( tmp );
+ CAknNoteDialog* dlg =
+ new ( ELeave ) CAknNoteDialog
+ (
+ REINTERPRET_CAST( CEikDialog**, &dlg ),
+ CAknNoteDialog::ENoTone,
+ CAknNoteDialog::EShortTimeout
+ );
+ dlg->PrepareLC( R_GENERAL_NOTE );
+ dlg->SetTextL( *tmp );
+ TInt retval = dlg->RunLD();
+ CleanupStack::PopAndDestroy( tmp ); // temp
+ DEBUG( - CLocSUPLSettingsUiEngine::ShowNoteL );
+ return retval;
+ }
// ---------------------------------------------------------------------------
// void CLocSUPLSettingsUiEngine::EditServerL()
@@ -300,43 +762,21 @@
//
void CLocSUPLSettingsUiEngine::EditServerL( TBool iIsEditable, TInt64 aSlpId )
{
- DEBUG( + CLocSUPLSettingsUiEngine::EditServerL );
- if (iEditorDlg)
- {
- delete iEditorDlg;
- iEditorDlg = NULL;
- }
- iEditorDlg = CLocSUPLServerEditor::NewL(iIsEditable, *this, aSlpId);
- if (aSlpId > 0)
+ DEBUG( + CLocSUPLSettingsUiEngine::EditServerL );
+ if( iEditorDlg )
+ {
+ delete iEditorDlg;
+ iEditorDlg = NULL;
+ }
+ iEditorDlg = CLocSUPLServerEditor::NewL( iIsEditable, *this, aSlpId );
+ TInt error = iEditorDlg->ExecuteLD();
+ if ( EEikCmdExit == error )
{
- CServerParams *params = CServerParams::NewL();
- CleanupStack::PushL(params);
- GetSlpInfoFromIdL(aSlpId, params);
-
- HBufC* hslpAddr = HBufC::NewLC(KMaxHSLPAddrLen);
- HBufC* iapName = HBufC::NewLC(KMaxIAPLen);
- TInt64 slpId;
- TBool enabledFlag, simChangeFlag, usageInHomeNwFlag, editFlag;
-
- TInt errParams = params->Get(slpId, hslpAddr->Des(), iapName->Des(),
- enabledFlag, simChangeFlag, usageInHomeNwFlag, editFlag);
- if (iapName->Length() > 0)
- {
- iEditorDlg->SetAccessPointEnabled(ETrue);
- }
-
- CleanupStack::PopAndDestroy(3, params);
- }
+ ( ( CAknViewAppUi* ) CEikonEnv::Static()->EikAppUi())->HandleCommandL( EEikCmdExit );
+ }
+ iEditorDlg = NULL;
- TInt error = iEditorDlg->ExecuteLD();
- if (EEikCmdExit == error)
- {
- ((CAknViewAppUi*) CEikonEnv::Static()->EikAppUi())->HandleCommandL(
- EEikCmdExit);
- }
- iEditorDlg = NULL;
-
- DEBUG( - CLocSUPLSettingsUiEngine::EditServerL );
+ DEBUG( - CLocSUPLSettingsUiEngine::EditServerL );
}
// ---------------------------------------------------------------------------
--- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsview.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsview.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -292,33 +292,42 @@
ChangeMSKL();
break;
}
-
+ // Handle all the internal view specific commands here
+ case ELocSuplChange:
+ case ELocSuplMSKChange:
+ {
+ // Launch the SUPL Settings usage configurator.
+ // The error code is ignored since the necessary UI
+ // notification would be convveyed by the Engine
+ TRAP_IGNORE( iEngine.LaunchSuplUsageConfiguratorL() );
+ break;
+ }
case ELocSuplOpen:
case ELocSuplMSKOpen:
{
TInt index = SelectedItemIndex();
switch( index )
{
- case 0:
- {
- // Launch the Supl Server List.
- // The error code is ignored since the necessary UI
- // notification would be convveyed by the Engine
- iViewLaunched = 0;
- TRAP_IGNORE( AppUi()->ActivateLocalViewL ( KLocSUPLServerUiViewId ) );
- break;
- }
- case 1:
- {
- TInt sessionCount = iContainer->ActiveSessionCount();
- if (sessionCount)
- {
- iViewLaunched = 1;
- // Launch the Supl sessions view.
- TRAP_IGNORE( AppUi()->ActivateLocalViewL ( KLocSUPLSessionUiViewId ) );
- }
- break;
- }
+ case 1:
+ {
+ // Launch the Supl Server List.
+ // The error code is ignored since the necessary UI
+ // notification would be convveyed by the Engine
+ iViewLaunched = 1;
+ TRAP_IGNORE( AppUi()->ActivateLocalViewL ( KLocSUPLServerUiViewId ) );
+ break;
+ }
+ case 2:
+ {
+ TInt sessionCount = iContainer->ActiveSessionCount();
+ if( sessionCount )
+ {
+ iViewLaunched = 2;
+ // Launch the Supl sessions view.
+ TRAP_IGNORE( AppUi()->ActivateLocalViewL ( KLocSUPLSessionUiViewId ) );
+ }
+ break;
+ }
default:
break;
}
@@ -435,27 +444,37 @@
{
case 0:
{
- aMenuPane->SetItemDimmed( ELocSuplOpen, EFalse );
+ //aMenuPane->SetItemDimmed( ELocSuplChange, EFalse );
+ //aMenuPane->SetItemDimmed( ELocSuplOpen, ETrue );
aMenuPane->SetItemDimmed( ELocSuplClearSession, ETrue );
aMenuPane->SetItemDimmed( ELocSuplClearSessions, ETrue );
break;
}
case 1:
{
+ //aMenuPane->SetItemDimmed( ELocSuplChange, ETrue );
+ //aMenuPane->SetItemDimmed( ELocSuplOpen, EFalse );
+ aMenuPane->SetItemDimmed( ELocSuplClearSession, ETrue );
+ aMenuPane->SetItemDimmed( ELocSuplClearSessions, ETrue );
+ break;
+ }
+ case 2:
+ {
+ aMenuPane->SetItemDimmed( ELocSuplChange, ETrue );
TInt sessionCount = iContainer->ActiveSessionCount();
switch( sessionCount )
{
case 0:
{
- aMenuPane->SetItemDimmed( ELocSuplOpen, ETrue );
+ //aMenuPane->SetItemDimmed( ELocSuplOpen, ETrue );
aMenuPane->SetItemDimmed( ELocSuplClearSession, ETrue );
aMenuPane->SetItemDimmed( ELocSuplClearSessions, ETrue );
break;
}
case 1:
{
- aMenuPane->SetItemDimmed( ELocSuplOpen, EFalse );
+ //aMenuPane->SetItemDimmed( ELocSuplOpen, EFalse );
aMenuPane->SetItemDimmed( ELocSuplClearSession, EFalse );
aMenuPane->SetItemSpecific(ELocSuplClearSession, ETrue);
aMenuPane->SetItemDimmed( ELocSuplClearSessions, ETrue );
@@ -463,7 +482,7 @@
}
default:
{
- aMenuPane->SetItemDimmed( ELocSuplOpen, EFalse );
+ //aMenuPane->SetItemDimmed( ELocSuplOpen, EFalse );
aMenuPane->SetItemDimmed( ELocSuplClearSession, ETrue );
aMenuPane->SetItemDimmed( ELocSuplClearSessions, EFalse );
aMenuPane->SetItemSpecific(ELocSuplClearSessions, ETrue);
--- a/locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosPrivacyNotifierExtension.h Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosPrivacyNotifierExtension.h Wed Oct 13 15:01:35 2010 +0300
@@ -30,7 +30,7 @@
// INCLUDES
#include <eiknotapi.h>
#include <lbs/epos_rposrequestorstack.h>
-#include <lbs/EPos_TPosQNInputData.h>
+#include <lbs/epos_tposqninputdata.h>
#include <EPos_CPosPrivacyNotifier.h>
// FORWARD DECLARATIONS
class CPosRequestHandler;
--- a/locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosRequestHandler.h Wed Sep 15 12:40:28 2010 +0300
+++ b/locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosRequestHandler.h Wed Oct 13 15:01:35 2010 +0300
@@ -29,7 +29,7 @@
// INCLUDES
#include <e32base.h>
-#include <lbs/EPos_TPosQNInputData.h>
+#include <lbs/epos_tposqninputdata.h>
#include <EPos_CPosPrivacyNotifier.h>
// FORWARD DECLARATIONS
--- a/locsrv_plat/location_settings_launch_api/inc/locsettingsuiclient.h Wed Sep 15 12:40:28 2010 +0300
+++ b/locsrv_plat/location_settings_launch_api/inc/locsettingsuiclient.h Wed Oct 13 15:01:35 2010 +0300
@@ -66,7 +66,8 @@
ELocSUPLDefault = KDefaultParamValue, // Default Settings View
ELocSUPLIAPSelection = 0x00000001, // IAP Selection dialog
ELocSUPLStateSelection = 0x00000002, // State enable dialog
- ELocSuplSettingsPage = 0x00000010 // SUPL settings page
+ ELocSuplSettingsPage = 0x00000010, // SUPL settings page
+ ELocSuplIAPDialog = 0x00000020 // SUPL IAP dialog
};
--- a/locsrv_plat/query_and_notification_api/inc/EPos_CPosPrivacyNotifier.h Wed Sep 15 12:40:28 2010 +0300
+++ b/locsrv_plat/query_and_notification_api/inc/EPos_CPosPrivacyNotifier.h Wed Oct 13 15:01:35 2010 +0300
@@ -23,7 +23,7 @@
// INCLUDES
#include <e32base.h>
#include <lbs/epos_privacy.h>
-#include <lbs/EPos_TPosQNInputData.h>
+#include <lbs/epos_tposqninputdata.h>
// DATA TYPES
--- a/supl/group/bld.inf Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/group/bld.inf Wed Oct 13 15:01:35 2010 +0300
@@ -17,11 +17,10 @@
PRJ_PLATFORMS
-WINSCW ARMV5
+WINSCW ARMV5 GCCE
#include "../locationsuplfw/group/bld.inf"
#include "../locationomasuplprotocolhandler/group/bld.inf"
//#include "../locationomasuplpostester/group/bld.inf"
#include "../supltiapiimplementation/group/bld.inf"
-//#include "../locationsupllocinfoconverter/group/bld.inf"
// End of File
--- a/supl/locationomasuplprotocolhandler/group/bld.inf Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/group/bld.inf Wed Oct 13 15:01:35 2010 +0300
@@ -44,5 +44,6 @@
#include "../waplistener/group/bld.inf"
#include "../syncmlprovhandler/group/bld.inf"
#include "../provisioninghandler/group/bld.inf"
+#include "../notifier/group/bld.inf"
// End of File
--- a/supl/locationomasuplprotocolhandler/notifier/notifier/data/epos_omasuplnotifier.rss Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/notifier/notifier/data/epos_omasuplnotifier.rss Wed Oct 13 15:01:35 2010 +0300
@@ -29,7 +29,7 @@
#include <avkon.loc>
// User Includes
-#include <sc/epos_omasuplnotifier.loc>
+#include <epos_omasuplnotifier.loc>
// RESOURCE IDENTIFIER
NAME SUNO // 4 Letter Identifier
--- a/supl/locationomasuplprotocolhandler/protocolhandler/bwins/eposomasuplprotocolhandleru.def Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/bwins/eposomasuplprotocolhandleru.def Wed Oct 13 15:01:35 2010 +0300
@@ -15,24 +15,24 @@
??1COMASuplSettings@@UAE@XZ @ 14 NONAME ; COMASuplSettings::~COMASuplSettings(void)
?IsHslpNull@COMASuplSettings@@QAEHXZ @ 15 NONAME ; int COMASuplSettings::IsHslpNull(void)
?NotifyTriggerFiredL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@AAVTSuplTriggerFireInfo@@@Z @ 16 NONAME ; void COMASUPLProtocolManager::NotifyTriggerFiredL(class CSuplSessionBase *, class TRequestStatus &, class TSuplTriggerFireInfo &)
- ?MakeLocationConversionRequestL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTGeoCellInfo@@AAVTRequestStatus@@@Z @ 17 NONAME ; void COMASUPLProtocolManager::MakeLocationConversionRequestL(class CSuplSessionBase *, class TGeoCellInfo &, class TRequestStatus &)
- ?IAPId@COMASuplSettings@@QBEHXZ @ 18 NONAME ; int COMASuplSettings::IAPId(void) const
- ?CancelLocationConversionRequest@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 19 NONAME ; void COMASUPLProtocolManager::CancelLocationConversionRequest(class CSuplSessionBase *)
- ?DeInitialize@COMASUPLProtocolManager@@UAEXAAVTRequestStatus@@@Z @ 20 NONAME ; void COMASUPLProtocolManager::DeInitialize(class TRequestStatus &)
- ?RunSuplTriggerSessionL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@AAVTSuplTerminalPeriodicTrigger@@ABVTDesC16@@HHH@Z @ 21 NONAME ; void COMASUPLProtocolManager::RunSuplTriggerSessionL(class CSuplSessionBase *, class TRequestStatus &, class TSuplTerminalPeriodicTrigger &, class TDesC16 const &, int, int, int)
- ?ConvertIAPNameToIdL@COMASuplSettings@@QAEHABVTDesC16@@AAK@Z @ 22 NONAME ; int COMASuplSettings::ConvertIAPNameToIdL(class TDesC16 const &, unsigned long &)
- ?CreateNewSessionL@COMASUPLProtocolManager@@UAEPAVCSuplSessionBase@@W4TSuplReqType@CSUPLProtocolManagerBase@@HW4TSuplServiceType@RSuplTerminalSubSession@@@Z @ 23 NONAME ; class CSuplSessionBase * COMASUPLProtocolManager::CreateNewSessionL(enum CSUPLProtocolManagerBase::TSuplReqType, int, enum RSuplTerminalSubSession::TSuplServiceType)
- ?SetIAPId@COMASuplSettings@@QAEXH@Z @ 24 NONAME ; void COMASuplSettings::SetIAPId(int)
- ?ReadOMASuplSettingsL@COMASuplCommonConfig@@QAEXXZ @ 25 NONAME ; void COMASuplCommonConfig::ReadOMASuplSettingsL(void)
- ?CancelRunSession@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 26 NONAME ; void COMASUPLProtocolManager::CancelRunSession(class CSuplSessionBase *)
- ??1COMASUPLProtocolManager@@UAE@XZ @ 27 NONAME ; COMASUPLProtocolManager::~COMASUPLProtocolManager(void)
- ?HandleSuplMessageL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@PAVHBufC8@@@Z @ 28 NONAME ; void COMASUPLProtocolManager::HandleSuplMessageL(class CSuplSessionBase *, class TRequestStatus &, class HBufC8 *)
- ?GetSUPLMessageVersionL@COMASUPLProtocolManager@@UAEHAAHABVTDesC8@@@Z @ 29 NONAME ; int COMASUPLProtocolManager::GetSUPLMessageVersionL(int &, class TDesC8 const &)
- ?ConstructL@COMASuplSettings@@AAEXXZ @ 30 NONAME ; void COMASuplSettings::ConstructL(void)
- ?NewL@COMASUPLProtocolManager@@SAPAV1@XZ @ 31 NONAME ; class COMASUPLProtocolManager * COMASUPLProtocolManager::NewL(void)
- ?HandlePacket@COMASUPLProtocolManager@@UAEXABVTDesC8@@I@Z @ 32 NONAME ; void COMASUPLProtocolManager::HandlePacket(class TDesC8 const &, unsigned int)
- ?CancelSuplTriggerSession@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 33 NONAME ; void COMASUPLProtocolManager::CancelSuplTriggerSession(class CSuplSessionBase *)
- ?InitializeL@COMASUPLProtocolManager@@UAEXPAVCSuplCommunicationManager@@AAVTRequestStatus@@@Z @ 34 NONAME ; void COMASUPLProtocolManager::InitializeL(class CSuplCommunicationManager *, class TRequestStatus &)
+ ?IAPId@COMASuplSettings@@QBEHXZ @ 17 NONAME ; int COMASuplSettings::IAPId(void) const
+ ?DeInitialize@COMASUPLProtocolManager@@UAEXAAVTRequestStatus@@@Z @ 18 NONAME ; void COMASUPLProtocolManager::DeInitialize(class TRequestStatus &)
+ ?RunSuplTriggerSessionL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@AAVTSuplTerminalPeriodicTrigger@@ABVTDesC16@@HHH@Z @ 19 NONAME ; void COMASUPLProtocolManager::RunSuplTriggerSessionL(class CSuplSessionBase *, class TRequestStatus &, class TSuplTerminalPeriodicTrigger &, class TDesC16 const &, int, int, int)
+ ?ConvertIAPNameToIdL@COMASuplSettings@@QAEHABVTDesC16@@AAK@Z @ 20 NONAME ; int COMASuplSettings::ConvertIAPNameToIdL(class TDesC16 const &, unsigned long &)
+ ?CreateNewSessionL@COMASUPLProtocolManager@@UAEPAVCSuplSessionBase@@W4TSuplReqType@CSUPLProtocolManagerBase@@HW4TSuplServiceType@RSuplTerminalSubSession@@@Z @ 21 NONAME ; class CSuplSessionBase * COMASUPLProtocolManager::CreateNewSessionL(enum CSUPLProtocolManagerBase::TSuplReqType, int, enum RSuplTerminalSubSession::TSuplServiceType)
+ ?SetIAPId@COMASuplSettings@@QAEXH@Z @ 22 NONAME ; void COMASuplSettings::SetIAPId(int)
+ ?ReadOMASuplSettingsL@COMASuplCommonConfig@@QAEXXZ @ 23 NONAME ; void COMASuplCommonConfig::ReadOMASuplSettingsL(void)
+ ?CancelRunSession@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 24 NONAME ; void COMASUPLProtocolManager::CancelRunSession(class CSuplSessionBase *)
+ ?SetSUPLUsage@COMASuplSettings@@QAEXAAW4TSuplSettingsUsage@CSuplSettings@@@Z @ 25 NONAME ; void COMASuplSettings::SetSUPLUsage(enum CSuplSettings::TSuplSettingsUsage &)
+ ??1COMASUPLProtocolManager@@UAE@XZ @ 26 NONAME ; COMASUPLProtocolManager::~COMASUPLProtocolManager(void)
+ ?HandleSuplMessageL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@PAVHBufC8@@@Z @ 27 NONAME ; void COMASUPLProtocolManager::HandleSuplMessageL(class CSuplSessionBase *, class TRequestStatus &, class HBufC8 *)
+ ?GetSUPLMessageVersionL@COMASUPLProtocolManager@@UAEHAAHABVTDesC8@@@Z @ 28 NONAME ; int COMASUPLProtocolManager::GetSUPLMessageVersionL(int &, class TDesC8 const &)
+ ?ConstructL@COMASuplSettings@@AAEXXZ @ 29 NONAME ; void COMASuplSettings::ConstructL(void)
+ ?NewL@COMASUPLProtocolManager@@SAPAV1@XZ @ 30 NONAME ; class COMASUPLProtocolManager * COMASUPLProtocolManager::NewL(void)
+ ?HandlePacket@COMASUPLProtocolManager@@UAEXABVTDesC8@@I@Z @ 31 NONAME ; void COMASUPLProtocolManager::HandlePacket(class TDesC8 const &, unsigned int)
+ ?CancelSuplTriggerSession@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 32 NONAME ; void COMASUPLProtocolManager::CancelSuplTriggerSession(class CSuplSessionBase *)
+ ?InitializeL@COMASUPLProtocolManager@@UAEXPAVCSuplCommunicationManager@@AAVTRequestStatus@@@Z @ 33 NONAME ; void COMASUPLProtocolManager::InitializeL(class CSuplCommunicationManager *, class TRequestStatus &)
+ ?SUPLUsage@COMASuplSettings@@QBE?AW4TSuplSettingsUsage@CSuplSettings@@XZ @ 34 NONAME ; enum CSuplSettings::TSuplSettingsUsage COMASuplSettings::SUPLUsage(void) const
?NewL@COMASuplCommonConfig@@SAPAV1@XZ @ 35 NONAME ; class COMASuplCommonConfig * COMASuplCommonConfig::NewL(void)
?SLPAddress@COMASuplSettings@@QBEABVTDesC8@@XZ @ 36 NONAME ; class TDesC8 const & COMASuplSettings::SLPAddress(void) const
?HandlePacketError@COMASUPLProtocolManager@@UAEXH@Z @ 37 NONAME ; void COMASUPLProtocolManager::HandlePacketError(int)
--- a/supl/locationomasuplprotocolhandler/protocolhandler/eabi/eposomasuplprotocolhandleru.def Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/eabi/eposomasuplprotocolhandleru.def Wed Oct 13 15:01:35 2010 +0300
@@ -3,40 +3,40 @@
_ZN16COMASuplSettings10ConstructLEv @ 2 NONAME
_ZN16COMASuplSettings10IsHslpNullEv @ 3 NONAME
_ZN16COMASuplSettings11SetUIActiveEi @ 4 NONAME
- _ZN16COMASuplSettings14SetHSLPAddressERK7TDesC16 @ 5 NONAME
- _ZN16COMASuplSettings19ConvertIAPNameToIdLERK7TDesC16Rm @ 6 NONAME
- _ZN16COMASuplSettings22SetHSLPAddressFromIMSIERK7TDesC16 @ 7 NONAME
- _ZN16COMASuplSettings4NewLEv @ 8 NONAME
- _ZN16COMASuplSettings8SetIAPIdEi @ 9 NONAME
- _ZN20COMASuplCommonConfig20ReadOMASuplSettingsLEv @ 10 NONAME
- _ZN20COMASuplCommonConfig4NewLEv @ 11 NONAME
- _ZN23COMASUPLProtocolManager11InitializeLEP25CSuplCommunicationManagerR14TRequestStatus @ 12 NONAME
- _ZN23COMASUPLProtocolManager11RunSessionLEP16CSuplSessionBaseR14TRequestStatusRK7TDesC16iiiR16TSuplTerminalQopi @ 13 NONAME
- _ZN23COMASUPLProtocolManager11RunSessionLEP16CSuplSessionBaseR14TRequestStatusRK7TDesC16iiii @ 14 NONAME
- _ZN23COMASUPLProtocolManager12HandlePacketERK6TDesC8j @ 15 NONAME
- _ZN23COMASUPLProtocolManager14DestroySessionEP16CSuplSessionBase @ 16 NONAME
- _ZN23COMASUPLProtocolManager15SetCommonConfigERP20COMASuplCommonConfig @ 17 NONAME
- _ZN23COMASUPLProtocolManager16CancelInitializeEv @ 18 NONAME
- _ZN23COMASUPLProtocolManager16CancelRunSessionEP16CSuplSessionBase @ 19 NONAME
- _ZN23COMASUPLProtocolManager17CreateNewSessionLEN24CSUPLProtocolManagerBase12TSuplReqTypeEiN23RSuplTerminalSubSession16TSuplServiceTypeE @ 20 NONAME
- _ZN23COMASUPLProtocolManager17HandlePacketErrorEi @ 21 NONAME
- _ZN23COMASUPLProtocolManager18HandleSuplMessageLEP16CSuplSessionBaseR14TRequestStatusP6HBufC8 @ 22 NONAME
- _ZN23COMASUPLProtocolManager19NotifyTriggerFiredLEP16CSuplSessionBaseR14TRequestStatusR20TSuplTriggerFireInfo @ 23 NONAME
- _ZN23COMASUPLProtocolManager22GetSUPLMessageVersionLERiRK6TDesC8 @ 24 NONAME
- _ZN23COMASUPLProtocolManager22RunSuplTriggerSessionLEP16CSuplSessionBaseR14TRequestStatusR28TSuplTerminalPeriodicTriggerRK7TDesC16iii @ 25 NONAME
- _ZN23COMASUPLProtocolManager24CancelSuplTriggerSessionEP16CSuplSessionBase @ 26 NONAME
- _ZN23COMASUPLProtocolManager30MakeLocationConversionRequestLEP16CSuplSessionBaseR12TGeoCellInfoR14TRequestStatus @ 27 NONAME
- _ZN23COMASUPLProtocolManager31CancelLocationConversionRequestEP16CSuplSessionBase @ 28 NONAME
- _ZN23COMASUPLProtocolManager4NewLEv @ 29 NONAME
- _ZN23COMASUPLProtocolManagerC1Ev @ 30 NONAME
- _ZN23COMASUPLProtocolManagerC2Ev @ 31 NONAME
- _ZN23COMASUPLProtocolManagerD0Ev @ 32 NONAME
- _ZN23COMASUPLProtocolManagerD1Ev @ 33 NONAME
- _ZN23COMASUPLProtocolManagerD2Ev @ 34 NONAME
- _ZNK16COMASuplSettings10IsUIActiveEv @ 35 NONAME
- _ZNK16COMASuplSettings10SLPAddressEv @ 36 NONAME
- _ZNK16COMASuplSettings18SLPAddressfromImsiEv @ 37 NONAME
- _ZNK16COMASuplSettings5IAPIdEv @ 38 NONAME
+ _ZN16COMASuplSettings12SetSUPLUsageERN13CSuplSettings18TSuplSettingsUsageE @ 5 NONAME
+ _ZN16COMASuplSettings14SetHSLPAddressERK7TDesC16 @ 6 NONAME
+ _ZN16COMASuplSettings19ConvertIAPNameToIdLERK7TDesC16Rm @ 7 NONAME
+ _ZN16COMASuplSettings22SetHSLPAddressFromIMSIERK7TDesC16 @ 8 NONAME
+ _ZN16COMASuplSettings4NewLEv @ 9 NONAME
+ _ZN16COMASuplSettings8SetIAPIdEi @ 10 NONAME
+ _ZN20COMASuplCommonConfig20ReadOMASuplSettingsLEv @ 11 NONAME
+ _ZN20COMASuplCommonConfig4NewLEv @ 12 NONAME
+ _ZN23COMASUPLProtocolManager11InitializeLEP25CSuplCommunicationManagerR14TRequestStatus @ 13 NONAME
+ _ZN23COMASUPLProtocolManager11RunSessionLEP16CSuplSessionBaseR14TRequestStatusRK7TDesC16iiiR16TSuplTerminalQopi @ 14 NONAME
+ _ZN23COMASUPLProtocolManager11RunSessionLEP16CSuplSessionBaseR14TRequestStatusRK7TDesC16iiii @ 15 NONAME
+ _ZN23COMASUPLProtocolManager12HandlePacketERK6TDesC8j @ 16 NONAME
+ _ZN23COMASUPLProtocolManager14DestroySessionEP16CSuplSessionBase @ 17 NONAME
+ _ZN23COMASUPLProtocolManager15SetCommonConfigERP20COMASuplCommonConfig @ 18 NONAME
+ _ZN23COMASUPLProtocolManager16CancelInitializeEv @ 19 NONAME
+ _ZN23COMASUPLProtocolManager16CancelRunSessionEP16CSuplSessionBase @ 20 NONAME
+ _ZN23COMASUPLProtocolManager17CreateNewSessionLEN24CSUPLProtocolManagerBase12TSuplReqTypeEiN23RSuplTerminalSubSession16TSuplServiceTypeE @ 21 NONAME
+ _ZN23COMASUPLProtocolManager17HandlePacketErrorEi @ 22 NONAME
+ _ZN23COMASUPLProtocolManager18HandleSuplMessageLEP16CSuplSessionBaseR14TRequestStatusP6HBufC8 @ 23 NONAME
+ _ZN23COMASUPLProtocolManager19NotifyTriggerFiredLEP16CSuplSessionBaseR14TRequestStatusR20TSuplTriggerFireInfo @ 24 NONAME
+ _ZN23COMASUPLProtocolManager22GetSUPLMessageVersionLERiRK6TDesC8 @ 25 NONAME
+ _ZN23COMASUPLProtocolManager22RunSuplTriggerSessionLEP16CSuplSessionBaseR14TRequestStatusR28TSuplTerminalPeriodicTriggerRK7TDesC16iii @ 26 NONAME
+ _ZN23COMASUPLProtocolManager24CancelSuplTriggerSessionEP16CSuplSessionBase @ 27 NONAME
+ _ZN23COMASUPLProtocolManager4NewLEv @ 28 NONAME
+ _ZN23COMASUPLProtocolManagerC1Ev @ 29 NONAME
+ _ZN23COMASUPLProtocolManagerC2Ev @ 30 NONAME
+ _ZN23COMASUPLProtocolManagerD0Ev @ 31 NONAME
+ _ZN23COMASUPLProtocolManagerD1Ev @ 32 NONAME
+ _ZN23COMASUPLProtocolManagerD2Ev @ 33 NONAME
+ _ZNK16COMASuplSettings10IsUIActiveEv @ 34 NONAME
+ _ZNK16COMASuplSettings10SLPAddressEv @ 35 NONAME
+ _ZNK16COMASuplSettings18SLPAddressfromImsiEv @ 36 NONAME
+ _ZNK16COMASuplSettings5IAPIdEv @ 37 NONAME
+ _ZNK16COMASuplSettings9SUPLUsageEv @ 38 NONAME
_ZTI13COMASuplTrace @ 39 NONAME
_ZTI16COMASuplSettings @ 40 NONAME
_ZTI20COMASuplCommonConfig @ 41 NONAME
--- a/supl/locationomasuplprotocolhandler/protocolhandler/group/omasuplprotocolhandler.mmp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/group/omasuplprotocolhandler.mmp Wed Oct 13 15:01:35 2010 +0300
@@ -72,7 +72,7 @@
LIBRARY insock.lib
LIBRARY lbs.lib
LIBRARY eposnwprv.lib
-
+LIBRARY locsettingsuiclient.lib
LIBRARY hash.lib
LIBRARY bafl.lib //logging
LIBRARY flogger.lib
--- a/supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplprotocolmanager.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplprotocolmanager.h Wed Oct 13 15:01:35 2010 +0300
@@ -254,32 +254,6 @@
*/
IMPORT_C virtual TInt GetSUPLMessageVersionL(TInt& aMajorVersion, const TDesC8& aReceivedMessage);
- /**
- * Function: CancelLocationConversionRequest
- * @since S60 v5.2
- * @Description: Cancels the location conversion request
- * @Param: aSuplSession, session object
- * @Returns: None
- *
- */
-
- IMPORT_C void CancelLocationConversionRequest(CSuplSessionBase* aSuplSession);
-
- /**
- * Function: MakeLocationConversionRequestL
- * @since S60 v5.2
- * @Description: issues the location conversion request
- * @Param: aSuplSession, session object
- * @Param: aCellInfo, cell information
- * @Param: aStatus, request status
- * @Returns: None
- *
- */
-
- IMPORT_C void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
- TGeoCellInfo& aCellInfo,
- TRequestStatus& aStatus );
-
protected: // Construction
/**
* COMASUPLProtocolManager,Perform the first phase of two phase construction
--- a/supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplsettings.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplsettings.h Wed Oct 13 15:01:35 2010 +0300
@@ -90,7 +90,13 @@
*/
IMPORT_C void SetIAPId(TInt aIAPId);
-
+ /**
+ * SetSUPLUsage Method.
+ * @since S60 v3.2
+ * @param aSUPLUsage
+ * @return None
+ */
+ IMPORT_C void SetSUPLUsage(CSuplSettings::TSuplSettingsUsage& aSUPLUsage );
/**
* SetUIActive Method.
@@ -125,7 +131,13 @@
*/
IMPORT_C TInt IAPId() const;
-
+ /**
+ * SUPL Usage Method.
+ * @since S60 v3.2
+ * @param None
+ * @return SUPL Usage
+ */
+ IMPORT_C CSuplSettings::TSuplSettingsUsage SUPLUsage() const;
/**
* IAPId Method.
@@ -153,7 +165,8 @@
// IAP Id
TInt iIAPId;
-
+ // SUPL Usage
+ CSuplSettings::TSuplSettingsUsage iSUPLUsage;
// Flag indicating the activation of settings UI
TBool iSettingsUIActive;
};
--- a/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplprotocolmanager.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplprotocolmanager.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -577,7 +577,7 @@
else
{
iTrace->Trace(_L("COMASUPLProtocolManager::DeInitialize ph1 not present"), KTraceFileName, __LINE__);
- TRAP_IGNORE(DeInitilizationCompletedL( KErrNotFound )); //ph1 is not present.
+ DeInitilizationCompletedL( KErrNotFound ); //ph1 is not present.
}
}
@@ -804,39 +804,6 @@
return GetSuplVersion(aMajorVersion,aReceivedMessage);
}
-// -----------------------------------------------------------------------------
-// COMASUPLProtocolManager::MakeLocationConversionRequestL
-//
-//
-// -----------------------------------------------------------------------------
-//
-
-EXPORT_C void COMASUPLProtocolManager::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,TGeoCellInfo& aCellInfo,TRequestStatus& aStatus )
- {
- iTrace->Trace(_L("COMASUPLProtocolManager::MakeLocationConversionRequestL"), KTraceFileName, __LINE__);
- if(iOMASuplProtocolHandler1)
- {
- iTrace->Trace(_L("COMASUPLProtocolManager::MakeLocationConversionRequestL if condition true"), KTraceFileName, __LINE__);
- COMASUPLProtocolManager* ph1= (COMASUPLProtocolManager*) (iOMASuplProtocolHandler1);
- ph1->MakeLocationConversionRequestL(aSuplSessn,aCellInfo,aStatus);
- };
- }
-
-// -----------------------------------------------------------------------------
-// COMASUPLProtocolManager::CancelLocationConversionRequest
-//
-//
-// -----------------------------------------------------------------------------
-//
-
-EXPORT_C void COMASUPLProtocolManager::CancelLocationConversionRequest(CSuplSessionBase* aSuplSession)
- {
- if(iOMASuplProtocolHandler1)
- {
- COMASUPLProtocolManager* ph1= (COMASUPLProtocolManager*) (iOMASuplProtocolHandler1);
- ph1->CancelLocationConversionRequest(aSuplSession);
- };
- }
// -----------------------------------------------------------------------------
// COMASUPLProtocolManager::DeInitilizationCompletedL
--- a/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplsettings.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplsettings.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -127,6 +127,27 @@
return iIAPId;
}
+// -----------------------------------------------------------------------------
+// COMASuplSettings::SetSUPLUsage
+// Sets the SUPL Usage
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void COMASuplSettings::SetSUPLUsage(CSuplSettings::TSuplSettingsUsage& aSUPLUsage )
+ {
+ iSUPLUsage = aSUPLUsage;
+ }
+
+// -----------------------------------------------------------------------------
+// COMASuplSettings::SUPLUsage()
+// Gets the SUPL Usage
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CSuplSettings::TSuplSettingsUsage COMASuplSettings::SUPLUsage() const
+ {
+ return iSUPLUsage;
+ }
// -----------------------------------------------------------------------------
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/eabi/eposomasuplprotocolhandler1u.def Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/eabi/eposomasuplprotocolhandler1u.def Wed Oct 13 15:01:35 2010 +0300
@@ -36,27 +36,29 @@
_ZTI23COMASuplFallBackHandler @ 35 NONAME
_ZTI24COMASUPLProtocolManager1 @ 36 NONAME
_ZTI24COMASuplEcomEventWatcher @ 37 NONAME
- _ZTI29COMASuplCompleteSelfRequestor @ 38 NONAME
- _ZTV12COMASuplETel @ 39 NONAME
- _ZTV13COMASuplState @ 40 NONAME
- _ZTV13COMASuplTrace @ 41 NONAME
- _ZTV15COMASuplSession @ 42 NONAME
- _ZTV16COMASuplEndState @ 43 NONAME
- _ZTV16COMASuplPosState @ 44 NONAME
- _ZTV17COMASuplInitState @ 45 NONAME
- _ZTV18COMASuplStartState @ 46 NONAME
- _ZTV19COMASuplDialogTimer @ 47 NONAME
- _ZTV19COMASuplIapNotifier @ 48 NONAME
- _ZTV20COMASuplETelNotifier @ 49 NONAME
- _ZTV20COMASuplPOSRequestor @ 50 NONAME
- _ZTV20COMASuplPosInitState @ 51 NONAME
- _ZTV20COMASuplTimeoutTimer @ 52 NONAME
- _ZTV21COMASuplConnRequestor @ 53 NONAME
- _ZTV21COMASuplResponseState @ 54 NONAME
- _ZTV23COMASuplFallBackHandler @ 55 NONAME
- _ZTV24COMASUPLProtocolManager1 @ 56 NONAME
- _ZTV24COMASuplEcomEventWatcher @ 57 NONAME
- _ZTV29COMASuplCompleteSelfRequestor @ 58 NONAME
- _ZThn4_N24COMASUPLProtocolManager112HandlePacketERK6TDesC8j @ 59 NONAME
- _ZThn4_N24COMASUPLProtocolManager117HandlePacketErrorEi @ 60 NONAME
+ _ZTI24COMASuplSettingsLauncher @ 38 NONAME
+ _ZTI29COMASuplCompleteSelfRequestor @ 39 NONAME
+ _ZTV12COMASuplETel @ 40 NONAME
+ _ZTV13COMASuplState @ 41 NONAME
+ _ZTV13COMASuplTrace @ 42 NONAME
+ _ZTV15COMASuplSession @ 43 NONAME
+ _ZTV16COMASuplEndState @ 44 NONAME
+ _ZTV16COMASuplPosState @ 45 NONAME
+ _ZTV17COMASuplInitState @ 46 NONAME
+ _ZTV18COMASuplStartState @ 47 NONAME
+ _ZTV19COMASuplDialogTimer @ 48 NONAME
+ _ZTV19COMASuplIapNotifier @ 49 NONAME
+ _ZTV20COMASuplETelNotifier @ 50 NONAME
+ _ZTV20COMASuplPOSRequestor @ 51 NONAME
+ _ZTV20COMASuplPosInitState @ 52 NONAME
+ _ZTV20COMASuplTimeoutTimer @ 53 NONAME
+ _ZTV21COMASuplConnRequestor @ 54 NONAME
+ _ZTV21COMASuplResponseState @ 55 NONAME
+ _ZTV23COMASuplFallBackHandler @ 56 NONAME
+ _ZTV24COMASUPLProtocolManager1 @ 57 NONAME
+ _ZTV24COMASuplEcomEventWatcher @ 58 NONAME
+ _ZTV24COMASuplSettingsLauncher @ 59 NONAME
+ _ZTV29COMASuplCompleteSelfRequestor @ 60 NONAME
+ _ZThn4_N24COMASUPLProtocolManager112HandlePacketERK6TDesC8j @ 61 NONAME
+ _ZThn4_N24COMASUPLProtocolManager117HandlePacketErrorEi @ 62 NONAME
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/group/omasuplprotocolhandler1.mmp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/group/omasuplprotocolhandler1.mmp Wed Oct 13 15:01:35 2010 +0300
@@ -51,7 +51,7 @@
SOURCE epos_comasuplinitstate.cpp
SOURCE epos_comasuplposrequestor.cpp
SOURCE epos_comasuplecomeventwatcher.cpp
-
+SOURCE epos_comasuplsettingslauncher.cpp
SOURCE epos_comasupltrace.cpp
SOURCE epos_comasupldialogtimer.cpp
SOURCE epos_comasuplfallbackhandler.cpp
@@ -83,7 +83,7 @@
LIBRARY insock.lib
LIBRARY lbs.lib
LIBRARY eposnwprv.lib
-
+LIBRARY locsettingsuiclient.lib
LIBRARY hash.lib
LIBRARY bafl.lib //logging
LIBRARY flogger.lib
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplconnrequestor.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplconnrequestor.h Wed Oct 13 15:01:35 2010 +0300
@@ -33,7 +33,6 @@
class COMASuplFallBackHandler;
class COMASUPLProtocolManager1;
class COMASuplDialogTimer;
-class CRepository;
/**
* Class for doing asynchronous service i.e. used for Sending Packet to Socket.
*
@@ -41,7 +40,9 @@
* @since S60 v3.1
*/
-class COMASuplConnRequestor : public CActive
+class COMASuplConnRequestor : public CActive,
+ public MOMASuplUICompletionObserver,
+ public MOMASuplDialogTimeOutNotifier
{
enum TConnState
@@ -93,18 +94,6 @@
*/
void CreateConnectionL(TInt aDialogTimeOutDelay);
-
- /**
- * CreateConnection Method Overload. Creates the Socket required to
- * communicate with the SLP. Called in case of NI case.
- * @since
- * @param aPrompt used to show connection dialog using OCC Api's.
- * @param aWlanOnly used to connect server using wlan only.
- * @return None
- * Added CreateConnectionL with aPrompt and aWLANOnly for OCC.
- */
- void CreateConnectionL(TBool aPrompt,TBool aWlanOnly);
-
/**
* SendPacket Method.
* @since Series 60 3.1
@@ -183,7 +172,9 @@
void GetUsedServerAddress(TDes& aHSLPAddressUsed);
-
+ void SettingsUICompletedL(TInt aError);
+ void SettingsUsageUICompletedL(TInt /*aError*/) {}
+ void SettingsTimeOutUICompletedL(TInt /*aError*/) {}
TBool ConvertIAPNameToIdL(const TDesC& aIAPName, TUint32& aIAPId);
void UpdateNetInfo(const TTime& aLastTimeUsed,TInt& aMcc,TInt& aMnc,
TInt& aCid,TInt& aLac,TInt& aType,TInt& aErrorCode);
@@ -217,7 +208,13 @@
void SaveAccessPoint(const TDesC& aIapName);
-
+ /**
+ * Dialog Timeout Notifier Method.
+ * @since Series 60 9.1 TB
+ * @param None
+ * @return None
+ */
+ virtual void DialogTimerExpiredL();
protected : // Functions from CActive
/**
* From CActive
@@ -274,28 +271,29 @@
//For trying for once with newly generated HSLP.
TBool iTLSAuthenticationFailed;
- //SUPLSettings,Ownership is with the object
+ //SUPLSettings
CSuplSettingsInternal *iSuplSettings;
- CRepository* iRepository;//Ownership is with the object
-
//Trace Utility
- COMASuplTrace* iTrace; //Ownership is with the object
+ COMASuplTrace* iTrace;
TBool iIsHSLPGenerated;
TBool iHslpAddrFromImsiUsed;
TInt iLastConnectionError;
- COMASuplFallBackHandler* iFallBackHandler;//Ownership is with the object
+ COMASuplFallBackHandler* iFallBackHandler;
TBool iIsSettingInitilized;
TInt64 iCurrentSLPId;
- TBool iPrompt;
+
+ COMASuplDialogTimer* iDialogTimer;
- TBool iWlanOnly;
+ TBool iIapDialogShown;
- TBool iIsStaleLocIdPresent;
+ TBool iIapDlgTimerExpired;
+
+ TBool iIsTimeoutDialogTimerStarted;
};
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplfallbackhandler.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplfallbackhandler.h Wed Oct 13 15:01:35 2010 +0300
@@ -88,6 +88,8 @@
void UpdateSLPListForHomeUsage(TBool aHomeNetwork);
+ void UpdateSLPListWithAccessPoint(const TDesC& aIapName);
+
private :
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplprotocolmanager1.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplprotocolmanager1.h Wed Oct 13 15:01:35 2010 +0300
@@ -81,6 +81,7 @@
public MSuplEcomEventObserver,
public MSuplSettingsObserver,
public MOMASuplTimeOutNotifier,
+ public MOMASuplUISettingsObserver,
public MOMASuplETelNotifierObserver
{
@@ -271,12 +272,40 @@
public:
+ // For setting UI observer
+ TInt LaunchSettingsUI(MOMASuplUICompletionObserver* aObserver,const TDesC& aForHslp);
+ TInt LaunchSuplUsageSettingsUI(MOMASuplUICompletionObserver* aObserver, TBool aRoaming);
+ TInt LaunchSuplDialogTimeoutUI(MOMASuplUICompletionObserver* aObserver );
+ void UpdateAllSubSessnsInSameSession(TInt aIpcSessionId);
- void UpdateAllSubSessnsInSameSession(TInt aIpcSessionId);
+ void CancelUiLaunch();
void SettingsChanged();
-
+ TInt GetLastUsedAccessPoint(TDes& aLastlyUsedAccessPoint,TUint32& iIAPId);
+ /**
+ * This callback method is used to notify the client about
+ * the completion of UI launch
+ * @param aError - Error during Launch
+ * @return None
+ */
+ void SettingsUICompletedL(TInt aError);
+
+ /**
+ * This callback method is used to notify the client about
+ * the completion of UI launch
+ * @param aError - Error during Launch
+ * @return None
+ */
+ void SettingsUsageUICompletedL(TInt aError);
+
+ /**
+ * This callback method is used to notify the client about
+ * the completion of UI completion
+ * @param aError - Error during Launch
+ * @return None
+ */
+ void SettingsTimeOutUICompletedL(TInt aError);
public: //From base class MSuplSettingsObserver
@@ -429,7 +458,13 @@
void ProcessInvalidSessionL(COMASuplAsnMessageBase* aDecodedMsg);
-
+ /**
+ * ReadSuplUsage, Reads OMA Supl Usage.
+ * @since S60 v3.1u
+ * @param None.
+ * @return None.
+ */
+ void ReadSuplUsage();
/**
@@ -477,28 +512,6 @@
public: // COMASUPLProtocolManager
void SetCommonConfig(COMASuplCommonConfig*& aCommmonConfig);
-public:
- /*
- * Method used to make conversion request for retrieving position of a location id.
- *
- * @since S60 v5.2
- * @param aSuplSessn session object on which processing will start,ownership is not transferred
- * @param aCellInfo contains cell id information and cell id type
- * @param aStatus On return, the status of the request
- *
- */
- void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
- TGeoCellInfo& aCellInfo,
- TRequestStatus& aStatus );
- /*
- * Method used to make cancel a conversion request for retrieving position of a location id,,ownership is not transferred.
- *
- * @since S60 v5.2
- * @param aSuplSessn session object which is to be cancelled
- *
- */
- void CancelLocationConversionRequest(CSuplSessionBase* aSuplSession);
-
private: // Data Members
//Holds all session objects created by CreateNewSession
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsession.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsession.h Wed Oct 13 15:01:35 2010 +0300
@@ -95,13 +95,15 @@
class COMASuplSession : public CSuplSessionBase,
public MOMASuplConnObserver,
+ public MOMASuplUICompletionObserver,
public MCompleteSelfRequest,
public MOMASuplMsgStateObserver,
public MOMASuplObserver,
public MOMASuplPrivacyObserver,
public MOMASuplTimeOutNotifier,
public MOMASuplEtelCompletionObserver,
- public MOMASuplIapChangeNotifierObserver
+ public MOMASuplIapChangeNotifierObserver,
+ public MOMASuplDialogTimeOutNotifier
{
public: // Constructors and destructor
@@ -207,6 +209,27 @@
*/
void GetPositionComplete(TInt aError);
+ /**
+ * This callback method is used to notify the client about
+ * the completion of UI launch
+ * @param aError - Error during Launch
+ * @return None
+ */
+ void SettingsUICompletedL(TInt aError);
+
+ /**
+ * This callback method is used to notify the client about
+ * the completion of UI
+ * @return None
+ */
+ void SettingsUsageUICompletedL(TInt aError);
+
+ /**
+ * This callback method is used to notify the client about
+ * the completion of UI
+ * @return None
+ */
+ void SettingsTimeOutUICompletedL(TInt aError);
public:
/**
@@ -232,14 +255,10 @@
* @param aAllowedCapabilities, Capabilities of SET
* @param aSessionIdSeed, seed value of session
* @param aRequestID, Request Identification number.
- * @param aIsStaleCellId, indicates if this session is for a stale cell id conversion
- * @param aLocationId , contains cell id parameters for which position is to be retrieved,ownership is transferred to this object
- * @param aPrompt indicates if the user is to be prompted when making location requests
- * @param aWlanOnly ,request to connect server using wlan connection only using OCC Api's
* @return None
*/
virtual void RunSuplSessionL(TRequestStatus& aStatus, TBool aFirstReq, const TDesC& aHslpAddress, TBool aFallBack, TInt aAllowedCapabilities,
- TInt aSessionIdSeed, TInt aRequestID = 0,TBool aIsStaleCellId = EFalse,COMASuplLocationId* aLocationId = NULL,TBool aPrompt = EFalse,TBool aWlanOnly = EFalse);
+ TInt aSessionIdSeed, TInt aRequestID = 0);
/**
* RunSessionL, Starts the SUPL Sesssion for Terminal Initiated Location Request
@@ -906,7 +925,13 @@
*/
virtual void TimerExpiredL();
-
+ /**
+ * Dialog Timeout Notifier Method.
+ * @since Series 60 9.1 TB
+ * @param None
+ * @return None
+ */
+ virtual void DialogTimerExpiredL();
public: // Usage dialog
void SetSuplUsageFlag();
void ReSetSuplUsageFlag();
@@ -914,7 +939,6 @@
void StartUsageDialogLaunchL();
TBool IsEtelNotifySet();
TBool IsEtelRoamingSet();
- TBool HasMeLaunchedUsageDialog();
TUint GetPortNumUsed();
private:
@@ -1061,7 +1085,8 @@
//Timeout Timer
COMASuplTimeoutTimer* iTimer;
-
+
+ COMASuplDialogTimer* iDialogTimer;
//Roaming indicator
TBool iRoaming;
@@ -1110,20 +1135,9 @@
COMASuplAsnHandlerBase* iOMASuplAsnHandlerBaseImpl;
- // Network privacy handle.Ownership is with this object
CPosNetworkPrivacy* iNetworkPrivacy;
- //Stale cell id which for which position is to be retrieved.Ownership is with this object
- COMASuplLocationId* iStaleLocationId;
- //indicates if this session is for a stale cell id conversion
- TBool iIsStaleLocIdPresent;
- //indicates if the user needs to be prompted when making a location request
- TBool iStaleLocIdPrompt;
- TBool iIhaveLaunchedUsagedialog;
TUint iPortNum;
-
- //To indicate WLAN connection for OCC
- TBool iWlanOnly;
};
#endif // C_COMASUPLSESSION_H
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsettingslauncher.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsettingslauncher.h Wed Oct 13 15:01:35 2010 +0300
@@ -151,12 +151,7 @@
TBuf8<256> buffer1;
TBuf8<256> buffer2;
TBool iRoaming;
-
- /**
- * IAP Selector Handle
- */
- RGenConAgentDialogServer iIapSelector;
-
+
/**
* Selected IAP ID
*/
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstartstate.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstartstate.h Wed Oct 13 15:01:35 2010 +0300
@@ -108,17 +108,6 @@
* @return None
*/
void SetQop(TSuplTerminalQop& aQop);
-
- /*
- * SetStaleCellIdToUse Method is used to set the Stale Cell id to use in case of
- * retrieving position for an already retrieved cell id.
- * For example : in case of Geo Tagged Images
- * @since S60 v5.2
- * @param aLocationId This is the locatiod id parameter containing the stale cell id
- * @return None
- */
-
- void SetStaleCellIdToUse(COMASuplLocationId* aLocationId);
public: //MOMASuplETelObserver
@@ -295,9 +284,6 @@
TOMASuplECellInfo iMmCellInfo;
COMASuplAsnHandlerBase* iOMASuplAsnHandlerBase;
-
- //Indicates whether we need to create start message with Stale Cell Id
- TBool iIsStaleCellId;
};
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstate.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstate.h Wed Oct 13 15:01:35 2010 +0300
@@ -25,6 +25,8 @@
#define PRINT_MESSAGE
#endif
+//#undef PRINT_MESSAGE
+
/**
MOMASuplMsgStateObserver Notifies about complaetion of operation with or without error.
* @lib eposomasuplprotocolhandler.lib
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplconnrequestor.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplconnrequestor.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -16,23 +16,21 @@
*/
-#include <centralrepository.h>
#include "epos_comasuplprotocolmanager1.h"
#include "epos_csuplcommunicationmanager.h"
#include "epos_csuplsettingsinternal.h"
-
+#include "epos_csuplsettingparams.h"
#include "epos_omasuplconstants.h"
#include "epos_comasuplconnrequestor.h"
#include "epos_momasuplconnobserver.h"
#include "epos_comasupltrace.h"
#include "epos_comasuplfallbackhandler.h"
-#include "epos_csuplsettingsinternalcrkeys.h"
-
#include "epos_comasupldialogtimer.h"
_LIT(KTraceFileName,"SUPL_OMA_SESSION::epos_comasuplconnrequestor.cpp");
+const TInt KStringLength = 100;
// ============================ MEMBER FUNCTIONS ===============================
@@ -42,18 +40,17 @@
// C++ constructor can NOT contain any code, that might leave.
// -----------------------------------------------------------------------------
//
-COMASuplConnRequestor::COMASuplConnRequestor(CSuplCommunicationManager& aCommMgr,
- COMASUPLProtocolManager1& aProtoMgr,
- TUint aPort,
- MOMASuplConnObserver& aObserver):
- CActive( EPriorityStandard ),
- iCommMgr(aCommMgr),
- iProtocolManager(aProtoMgr),
- iPort(aPort),
- iObserver( aObserver),iPrompt(EFalse),iWlanOnly(EFalse),iIsStaleLocIdPresent(EFalse)
- {
+COMASuplConnRequestor::COMASuplConnRequestor(
+ CSuplCommunicationManager& aCommMgr,
+ COMASUPLProtocolManager1& aProtoMgr, TUint aPort,
+ MOMASuplConnObserver& aObserver) :
+ CActive(EPriorityStandard), iCommMgr(aCommMgr), iProtocolManager(
+ aProtoMgr),iConnection(NULL), iPort(aPort), iObserver(aObserver), iIapDialogShown(
+ EFalse), iIapDlgTimerExpired(EFalse),
+ iIsTimeoutDialogTimerStarted(EFalse)
+ {
- }
+ }
// -----------------------------------------------------------------------------
// COMASuplConnRequestor::ConstructL
@@ -72,11 +69,12 @@
iHslpAddrFromImsiUsed = EFalse;
iFallBackHandler = COMASuplFallBackHandler::NewL(*iSuplSettings);
- iRepository = CRepository::NewL(KCRUidSuplSettings);
+
iLastConnectionError = KErrNone;
iCurrentSLPId = KErrNotFound;
+ iDialogTimer = COMASuplDialogTimer::NewL(*this);
}
// -----------------------------------------------------------------------------
@@ -106,12 +104,15 @@
COMASuplConnRequestor::~COMASuplConnRequestor()
{
Cancel();
-
+ if(iDialogTimer)
+ {
+ iDialogTimer->Cancel();
+ delete iDialogTimer;
+ iDialogTimer = NULL;
+ }
delete iSuplSettings;
delete iTrace;
delete iFallBackHandler;
- delete iRepository;
- iRepository = NULL;
}
// -----------------------------------------------------------------------------
@@ -135,73 +136,57 @@
if(errorCode == KErrNone)
{
- TBool ret = ConvertIAPNameToIdL(iapName,iIAPId);
- if(!ret)
- {
- buffer.Copy(_L("No access point configured for "));
- buffer.Append(iHostAddress);
- iTrace->Trace(buffer,KTraceFileName, __LINE__);
- buffer.Copy(_L("Calling CreateConnection with no IAP"));
- iTrace->Trace(buffer,KTraceFileName, __LINE__);
- iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,-1);
- OpenConnection();
-
- }
- else
- {
- buffer.Copy(_L("Connecting to "));
- buffer.Append(iHostAddress);
- iTrace->Trace(buffer,KTraceFileName, __LINE__);
- iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,iIAPId);
- OpenConnection();
- }
- }
- else
- {
- iHostAddress.Zero();
- iObserver.OperationCompleteL(errorCode);
- }
+ TBool ret = ConvertIAPNameToIdL(iapName,iIAPId);
+ if(!ret)
+ {
+ buffer.Copy(_L("No access point configured for "));
+ buffer.Append(iHostAddress);
+ iTrace->Trace(buffer,KTraceFileName, __LINE__);
+ if( isIapDialogShown )
+ {
+ TInt err = iProtocolManager.LaunchSettingsUI(this,iHostAddress);
+ if(err != KErrNone)
+ {
+ buffer.Copy(_L("Error in launching UI : "));
+ buffer.AppendNum(err);
+ iTrace->Trace(buffer,KTraceFileName, __LINE__);
+ iHostAddress.Zero();
+ iObserver.OperationCompleteL(err);
+ }
+ else
+ iIapDialogShown = ETrue;
+ }
+
+
+ }
+ else
+ {
+ iIsTimeoutDialogTimerStarted = EFalse;
+ iDialogTimer->Cancel();
+ buffer.Copy(_L("Connecting to "));
+ buffer.Append(iHostAddress);
+ iTrace->Trace(buffer,KTraceFileName, __LINE__);
+ iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,iIAPId);
+ OpenConnection();
+ }
+ }
+ else
+ {
+ iHostAddress.Zero();
+ iObserver.OperationCompleteL(errorCode);
+ }
}
}
-
-
- // -----------------------------------------------------------------------------
-// COMASuplConnRequestor::CreateConnection for OCC
-// -----------------------------------------------------------------------------
-//
-void COMASuplConnRequestor::CreateConnectionL(TBool aPrompt,TBool aWlanOnly)
- {
- TBuf<30> GeoTagServerName;
- TBuf<128> buffer;
- iState = EConnecting;
-
- iPrompt = aPrompt;
- iWlanOnly = aWlanOnly;
- iIsStaleLocIdPresent = ETrue;
-
- TInt err;
- err = iRepository->Get(KSuplGeoInfoConvServerName, GeoTagServerName);
- User::LeaveIfError(err);
- buffer.Copy(_L("Connecting to"));
- buffer.Append(GeoTagServerName);
- iTrace->Trace(buffer,KTraceFileName, __LINE__);
- iTls = ETrue;
- iPskTls = EFalse;
- iIAPId = 0;
-
-
- iConnection = iCommMgr.CreateConnectionL(GeoTagServerName,iTls,iPskTls,iPort,iIAPId);
-
- OpenConnection();
-
- }
// -----------------------------------------------------------------------------
// COMASuplConnRequestor::OpenConnection
// -----------------------------------------------------------------------------
-
-void COMASuplConnRequestor::CreateConnectionL(TInt /*aDialogTimeOutDelay*/)
+//
+void COMASuplConnRequestor::CreateConnectionL(TInt aDialogTimeOutDelay)
{
+ iIsTimeoutDialogTimerStarted = ETrue;
+
+ iDialogTimer->StartTimer(aDialogTimeOutDelay);
CreateConnectionL();
}
// -----------------------------------------------------------------------------
@@ -245,17 +230,8 @@
if(iConnection)
{
iState = EConnecting;
- if(iIsStaleLocIdPresent)
- {
- iTrace->Trace(_L("OpenConnection OCC"),KTraceFileName, __LINE__);
- iConnection->Connect(iStatus,iPrompt,iWlanOnly);
- }
- else
- {
- iConnection->Connect(iStatus);
- }
- SetActive();
-
+ iConnection->Connect(iStatus);
+ SetActive();
}
}
else
@@ -324,17 +300,7 @@
{
iHostAddress.Zero();
CloseConnection();
- if(iIsStaleLocIdPresent)
- {
- iTrace->Trace(_L("Request completed with error..."), KTraceFileName, __LINE__);
- iObserver.OperationCompleteL(iLastConnectionError);
- }
- else
- {
- iTrace->Trace(_L("Setting API Initilizing Completed..."), KTraceFileName, __LINE__);
- CreateConnectionL();
- }
-
+ CreateConnectionL();
}
else
{
@@ -429,7 +395,6 @@
void COMASuplConnRequestor::InitilizeSetting()
{
iTrace->Trace(_L("Intilizing Setting API..."), KTraceFileName, __LINE__);
-
iSuplSettings->Initialize(iStatus);
SetActive();
}
@@ -453,13 +418,15 @@
}
TUint COMASuplConnRequestor::GetPortNumber()
- {
- if(iConnection)
- return iConnection->GetPortNumberUsed();
- else
- return 0;
- }
-
+ {
+ if (iConnection)
+ {
+ return iConnection->GetPortNumberUsed();
+ }
+ else
+ return 0;
+ }
+
// -----------------------------------------------------------------------------
// COMASuplConnRequestor::SetDefaultParametersL
// -----------------------------------------------------------------------------
@@ -507,7 +474,106 @@
return result;
}
+// -----------------------------------------------------------------------------
+// COMASuplConnRequestor::SettingsUICompleted
+//
+// -----------------------------------------------------------------------------
+void COMASuplConnRequestor::SettingsUICompletedL(TInt aError)
+ {
+ TBuf<128> buffer(_L("COMASuplConnRequestor:SettingsUICompleted Error: "));
+ buffer.AppendNum(aError);
+ iTrace->Trace(buffer,KTraceFileName, __LINE__);
+
+ if (iIsTimeoutDialogTimerStarted)
+ {
+ iTrace->Trace(_L("COMASuplSession::SettingsUICompleted, stopping timer "), KTraceFileName, __LINE__);
+ iIsTimeoutDialogTimerStarted = EFalse;
+ iDialogTimer->StopTimer();
+ }
+ if (iIapDlgTimerExpired)
+ {
+ iIapDlgTimerExpired = EFalse;
+ iIapDialogShown = EFalse;
+ iProtocolManager.LaunchSuplDialogTimeoutUI(this);
+ iObserver.OperationCompleteL(KErrNone);
+ return;
+ }
+ if(aError == KErrNone)
+ {
+ TInt err = KErrGeneral;
+ iTrace->Trace(
+ _L("COMASuplConnRequestor::SettingsUICompletedL KErrNone"),
+ KTraceFileName, __LINE__);
+ TBuf<100> IapName, buffer;
+ CServerParams* params = CServerParams::NewL();
+
+ err = iSuplSettings->GetSlpInfoAddress(iHostAddress, params);
+ iTrace->Trace(_L("iSuplSettings->GetSlpInfoAddress returned : "),
+ KTraceFileName, __LINE__);
+ buffer.AppendNum(err);
+ iTrace->Trace(buffer, KTraceFileName, __LINE__);
+
+ // Fix for ou1cimx#475026 and ou1cimx#471138
+ // When there are no access points defined for any SUPL server, the user is asked to
+ // select the access point only once and same access point is used for the following servers.
+ if (err == KErrNone)
+ {
+ HBufC* aServerAddress = HBufC::NewL(KStringLength);
+ HBufC* aIapName = HBufC::NewL(KStringLength);
+ TInt64 aSlpId;
+ TBool aServerEnabled, aSimChangeRemove, aUsageInHomeNw, aEditable;
+
+ err = params->Get(aSlpId, aServerAddress->Des(), aIapName->Des(),
+ aServerEnabled, aSimChangeRemove, aUsageInHomeNw,
+ aEditable);
+
+ iTrace->Trace(_L("params->Get() returned: "), KTraceFileName,
+ __LINE__);
+ buffer.Zero();
+ buffer.AppendNum(err);
+ iTrace->Trace(buffer, KTraceFileName, __LINE__);
+ IapName.Copy(*aIapName);
+ IapName.LowerCase();
+
+ //converting the iap name to id.
+ ConvertIAPNameToIdL(IapName, iIAPId);
+ //updating the list of SLP with the chosen access point
+ iFallBackHandler->UpdateSLPListWithAccessPoint(IapName);
+
+ delete aServerAddress;
+ delete aIapName;
+ delete params;
+
+ // if the getting the list parameters is success opening the connection with the chosen access point
+ if (err == KErrNone)
+ {
+ buffer.Copy(_L("Connecting to "));
+ buffer.Append(iHostAddress);
+ buffer.Append(_L(" using IAP "));
+ buffer.Append(IapName);
+ iTrace->Trace(buffer, KTraceFileName, __LINE__);
+ iConnection = iCommMgr.CreateConnectionL(iHostAddress, iTls,
+ iPskTls, iPort, iIAPId);
+ OpenConnection();
+ }
+ else
+ {
+ iObserver.OperationCompleteL(err);
+ }
+ }
+ else
+ {
+ delete params;
+ iObserver.OperationCompleteL(err);
+ }
+ }
+ else
+ {
+ iObserver.OperationCompleteL(aError);
+ }
+
+ }
// -----------------------------------------------------------------------------
// COMASuplConnRequestor::SaveAccessPoint
@@ -573,5 +639,19 @@
iFallBackHandler->UpdateSLPListForHomeUsage(aHomeNetwork);
}
+// -----------------------------------------------------------------------------
+// COMASuplConnRequestor::DialogTimerExpiredL
+// Checks whether UI is displayed or not previously
+//
+// -----------------------------------------------------------------------------
+void COMASuplConnRequestor::DialogTimerExpiredL()
+ {
+ iTrace->Trace(_L("COMASuplConnRequestor:Timer Expired for SUPL IAP Dialog"), KTraceFileName, __LINE__);
+ if (!iIapDialogShown)
+ iProtocolManager.LaunchSuplDialogTimeoutUI(this);
+ else
+ iIapDlgTimerExpired = ETrue;
+ return;
+ }
// End of File
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplendstate.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplendstate.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -259,15 +259,10 @@
{
return ETrue;
}
-
+
if(iEncodedSuplInit && (iEncodedSuplInit->Length()) > 0 &&
iHSLPAddress && iHSLPAddress->Length() > 0)
{
- TBuf<64> serverCheck;
- serverCheck.Copy(*iHSLPAddress);
- iTrace->Trace(_L("Server Address for VER : "), KTraceFileName, __LINE__);
- iTrace->Trace(serverCheck, KTraceFileName, __LINE__);
-
TInt blockSize = 64;
TChar ipad = 0x36;
TChar opad = 0x5c;
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasupletel.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasupletel.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Implementation of COMASuplEtel Class
-* Version : %version: 3.1.1 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: 3 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -524,7 +524,7 @@
for(TInt k = 0; k < KOMASUPLMaxTimeSlotIscpAmount; k++ )
{
- iOMASuplwcdmaCellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k] = iCustomWCDMACellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k];
+ iOMASuplwcdmaCellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k] = iOMASuplwcdmaCellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k];
}
}
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplfallbackhandler.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplfallbackhandler.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -804,6 +804,31 @@
}
// -----------------------------------------------------------------------------
+// COMASuplFallBackHandler::UpdateSLPListWithAccessPoint
+// -----------------------------------------------------------------------------
+//
+void COMASuplFallBackHandler::UpdateSLPListWithAccessPoint(const TDesC& aIapName)
+{
+ iTrace->Trace(_L("UpdateSLPListWithAccessPoint Start"),KTraceFileName, __LINE__);
+
+ TInt TotalServers = iSLPList->Count();
+ TInt cnt = 0;
+ while( cnt < TotalServers )
+ {
+ if (((*iSLPList)[cnt].iIapName.Length() == 0)) ;
+ {
+ (*iSLPList)[cnt].iIapName.Copy(aIapName);
+ }
+ cnt++;
+ }
+
+ iTrace->Trace(_L("UpdateSLPListWithAccessPoint End"),KTraceFileName, __LINE__);
+
+ PrintSLPList();
+
+}
+
+// -----------------------------------------------------------------------------
// COMASuplFallBackHandler::GetFirstEnabledSLPL
// -----------------------------------------------------------------------------
//
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplinitstate.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplinitstate.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -257,7 +257,7 @@
// Notify Network Privacy of the request information
// Synchronous call
TInt RequestId;
- TRAP_IGNORE(iNetworkPrivacy->NotifyLocationRequestL(*suplReqInfo,RequestId);)
+ iNetworkPrivacy->NotifyLocationRequestL(*suplReqInfo,RequestId);
if(iIsNotificationOnly)
{
@@ -304,6 +304,7 @@
if(!clientError)
{
// Set name of Client
+
if(client)
{
suplReqInfo->SetLCSClientL(*client,iIdType);
@@ -320,12 +321,8 @@
// what decision the GSM Network will make if the user won't answer before
// a timeout comes in from GSM Network. In this case verification will
// be rejected.
- iTrace->Trace(_L("Calling iNetworkPrivacy->VerifyLocationRequestL"), KTraceFileName, __LINE__);
-
-
- TRAP_IGNORE(iNetworkPrivacy->VerifyLocationRequestL(*suplReqInfo,
- iGSMRequestId, *this, aTimeOutStrategy);)
-
+ iNetworkPrivacy->VerifyLocationRequestL(*suplReqInfo,
+ iGSMRequestId, *this, aTimeOutStrategy);
TBuf<64> msg;
msg.Copy(_L("1.0 Privacy Fw Generated Verification Request id:"));
msg.AppendNum(iGSMRequestId);
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplposinitstate.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplposinitstate.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -242,10 +242,7 @@
iVerPresent = ComputeSuplInitVerL();
if(iVerPresent)
{
- if(!iIsStaleCellId) // if this request is for a stale cell id conversion then do not retrieve current location id
- iLocationIDRequestor->GetLocationID();
- else
- iMsgStateObserver->OperationCompleteL(KErrNone);
+ iLocationIDRequestor->GetLocationID();
}
else
{
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -46,9 +46,6 @@
#include "epos_comasupltimeouttimer.h"
#include "epos_omasuplconstants.h"
#include "epos_comasuplcommonconfig.h"
-#include "epos_suplgeocellinfo.h"
-
-#include "epos_comasupllocationid.h"
_LIT(KTraceFileName,"SUPL_OMA_PH::EPos_COMASUPLProtocolManager1.cpp");
@@ -105,7 +102,11 @@
// Destructor.
EXPORT_C COMASUPLProtocolManager1::~COMASUPLProtocolManager1()
{
-
+ if(iSettingsLauncher)
+ {
+ iSettingsLauncher->CancelLaunch();
+ }
+
if(iSuplSettings)
{
iSuplSettings->SetUIActive( EFalse );
@@ -134,7 +135,7 @@
delete iSuplEcomEventWatcher;
-
+ delete iSettingsLauncher;
delete iNotifier;
iMobilePhone.Close();
iTelServer.Close();
@@ -172,7 +173,7 @@
iSuplStorageSettings = CSuplSettingsInternal::NewL();
iSuplStorageSettings->SetObserverL(*this);
-
+ iSettingsLauncher = COMASuplSettingsLauncher::NewL( *this );
iIMSI.CreateL( KMaxIMSILen );
iIsPreviouslyDecodingFailed = EFalse;
@@ -249,7 +250,7 @@
//Connect to ETel
User::LeaveIfError(ConnectToETelL());
-
+ ReadSuplUsage();
if(iSuplEcomEventWatcher)
{
@@ -527,11 +528,6 @@
iTrace->Trace(_L("COMASUPLProtocolManager1::DestroySession Destroy Session"), KTraceFileName, __LINE__);
COMASuplSession* OMASession = static_cast<COMASuplSession*>(aSuplSession);
- if (OMASession->HasMeLaunchedUsageDialog())
- {
- iTrace->Trace(_L("Setting NULL."), KTraceFileName, __LINE__);
- iSessnUIObserver = NULL;
- }
if (OMASession->GetSessionUIFlag())
{
OMASession->DestroySession();
@@ -1042,14 +1038,6 @@
iTrace->Trace(_L("Cannot found Supl session."), KTraceFileName, __LINE__);
return;
}
-
- COMASuplSession* OMASession = static_cast<COMASuplSession*>(aSuplSession);
- if (OMASession->HasMeLaunchedUsageDialog())
- {
- iTrace->Trace(_L("Setting NULL."), KTraceFileName, __LINE__);
- iSessnUIObserver = NULL;
- }
-
aSuplSession->CancelRunSession();
return ;
}
@@ -1199,6 +1187,7 @@
if( aEvent == MSuplSettingsObserver::ESuplSettingsEventSuplUsageChange)
{
iTrace->Trace(_L("Setting Changed.SUPL Usage changed.. Reeading once again..."), KTraceFileName, __LINE__);
+ ReadSuplUsage();
}
else if( aEvent == MSuplSettingsObserver::ESuplSettingsEventCommParameterChange)
{
@@ -1625,6 +1614,68 @@
}
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager1::LaunchSettingsUI
+//
+//
+// -----------------------------------------------------------------------------
+//
+TInt COMASUPLProtocolManager1::LaunchSettingsUI(MOMASuplUICompletionObserver* aObserver,const TDesC& aForHslp)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager1::LaunchSettingsUI"), KTraceFileName, __LINE__);
+
+ if(iUIRequestArray.Count() <= 0 )
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager1::LaunchSettingsUI"), KTraceFileName, __LINE__);
+ iUIRequestArray.Append(aObserver);
+ iSuplSettings->SetUIActive(ETrue);
+ iCurrentlyUsedHslp.Copy(aForHslp);
+ return iSettingsLauncher->LaunchSettings();
+ }
+ else if(iCurrentlyUsedHslp.Compare(aForHslp) == KErrNone)
+ {
+ iUIRequestArray.Append(aObserver);
+ }
+ else
+ {
+ return KErrInUse;
+ }
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager1::SettingsUICompletedL
+//
+//
+// -----------------------------------------------------------------------------
+//
+void COMASUPLProtocolManager1::SettingsUICompletedL(TInt aError)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsUICompletedL"), KTraceFileName, __LINE__);
+ iSuplSettings->SetUIActive(EFalse);
+
+ if (iDeInitDone)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsUICompletedL, de-init done. Completing request"), KTraceFileName, __LINE__);
+ iDeInitDone = EFalse;
+ User::RequestComplete(iDeInitRequestStatus,KErrNone);
+ }
+ else
+ {
+ for(TInt i = 0; i < iUIRequestArray.Count(); i++)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsUICompletedL,Forwarding ConnRerquestor "), KTraceFileName, __LINE__);
+ MOMASuplUICompletionObserver* observer = iUIRequestArray[i];
+ observer->SettingsUICompletedL(aError);
+ }
+
+ }
+
+ iCurrentlyUsedHslp.Copy(_L(""));
+ iUIRequestArray.Reset();
+ }
+
// -----------------------------------------------------------------------------
// COMASUPLProtocolManager1::DeInitialize
@@ -1678,11 +1729,72 @@
return networkMode;
}
-
-
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager1::LaunchSuplUsageSettingsUI
+//
+//
+// -----------------------------------------------------------------------------
+//
+TInt COMASUPLProtocolManager1::LaunchSuplUsageSettingsUI(MOMASuplUICompletionObserver* aObserver, TBool aRoaming)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager1::LaunchSuplUsageSettingsUI"), KTraceFileName, __LINE__);
+ if (iSuplSettings->IsUIActive() && !iTimeOutDialogPresent)
+ return KErrInUse;
+ // If timeout dialog is present, close it
+ if (iTimeOutDialogPresent)
+ {
+ iTimeOutDialogPresent = EFalse;
+ iSuplSettings->SetUIActive(EFalse);
+ iSettingsLauncher->Cancel();
+ }
+ iSessnUIObserver = aObserver;
+ iSuplSettings->SetUIActive(ETrue);
+ return iSettingsLauncher->LaunchSuplUsageSettingsUI(aRoaming);
+ }
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager1::SettingsUsageUICompletedL
+//
+//
+// -----------------------------------------------------------------------------
+//
+void COMASUPLProtocolManager1::SettingsUsageUICompletedL(TInt aError)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsUsageUICompletedL"), KTraceFileName, __LINE__);
+ iSuplSettings->SetUIActive(EFalse);
+ if (iDeInitDone)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsUsageUICompletedL, de-init done. Completing request"), KTraceFileName, __LINE__);
+ iDeInitDone = EFalse;
+ User::RequestComplete(iDeInitRequestStatus,KErrNone);
+ }
+ else
+ {
+ if (iSessnUIObserver)
+ iSessnUIObserver->SettingsUsageUICompletedL(aError);
+ }
+ CheckOutstandingUsageUIRequestsL();
+ }
+
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager1::ReadSuplUsage
+// Reads Supl Usage from Central Repository
+//
+// -----------------------------------------------------------------------------
+//
+void COMASUPLProtocolManager1::ReadSuplUsage()
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager1::ReadSuplUsage start"), KTraceFileName, __LINE__);
+ CSuplSettings::TSuplSettingsUsage suplUsage;
+ TInt err = iSuplStorageSettings->GetSuplUsage(suplUsage);
+ if(err == KErrNone )
+ {
+ iSuplSettings->SetSUPLUsage(suplUsage);
+ }
+ iTrace->Trace(_L("COMASUPLProtocolManager1::ReadSuplUsage end"), KTraceFileName, __LINE__);
+ }
void COMASUPLProtocolManager1::UpdateAllSubSessnsInSameSession(TInt aIpcSessionId)
{
@@ -1722,7 +1834,8 @@
OMAsuplSession = static_cast<COMASuplSession*>(iSuplSessions[cnt]);
if (OMAsuplSession->GetSuplUsageFlag())
- {
+ {
+ OMAsuplSession->StartUsageDialogLaunchL();
break;
}
}
@@ -1806,7 +1919,62 @@
}
}
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager1::LaunchSuplDialogTimeoutUI
+//
+//
+// -----------------------------------------------------------------------------
+//
+TInt COMASUPLProtocolManager1::LaunchSuplDialogTimeoutUI(MOMASuplUICompletionObserver* aObserver )
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager1::LaunchTimeOutUI"), KTraceFileName, __LINE__);
+
+ iSessnUIObserver = aObserver;
+ if (iSuplSettings->IsUIActive())
+ {
+ iSuplSettings->SetUIActive(EFalse);
+ iSettingsLauncher->Cancel();
+ }
+ iSuplSettings->SetUIActive(ETrue);
+ iTimeOutDialogPresent = ETrue;
+ return iSettingsLauncher->LaunchSessionTimeOutDialog();
+ }
+
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager1::SettingsTimeOutUICompletedL
+//
+//
+// -----------------------------------------------------------------------------
+//
+void COMASUPLProtocolManager1::SettingsTimeOutUICompletedL(TInt aError)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsTimeOutUICompletedL"), KTraceFileName, __LINE__);
+ iSuplSettings->SetUIActive(EFalse);
+ iTimeOutDialogPresent = EFalse;
+
+ if (iDeInitDone)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager1::SettingsTimeOutUICompletedL, Completing request"), KTraceFileName, __LINE__);
+ iDeInitDone = EFalse;
+ User::RequestComplete(iDeInitRequestStatus,KErrNone);
+ }
+ else
+ {
+ if (iSessnUIObserver)
+ iSessnUIObserver->SettingsTimeOutUICompletedL(aError);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager1::GetLastUsedAccessPoint
+//
+// -----------------------------------------------------------------------------
+//
+TInt COMASUPLProtocolManager1::GetLastUsedAccessPoint(TDes& aLastlyUsedAccessPoint,TUint32& iIAPId)
+ {
+ return iSettingsLauncher->GetIAPName(aLastlyUsedAccessPoint,iIAPId);
+ }
// -----------------------------------------------------------------------------
// COMASUPLProtocolManager1::PrintHex
@@ -1904,100 +2072,17 @@
iSuplInitTimeOut = aCommmonConfig->iSuplInitTimeOut;
iPersistFailTimer = aCommmonConfig->iPersistFailTimer;
}
-
-
-// -----------------------------------------------------------------------------
-// COMASUPLProtocolManager1::MakeLocationConversionRequestL
+
+ // -----------------------------------------------------------------------------
+// COMASUPLProtocolManager1::CancelUiLaunch
//
-// To make conversion request to retrieve position for a given cell id
+//
// -----------------------------------------------------------------------------
//
-void COMASUPLProtocolManager1::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
- TGeoCellInfo& aCellInfo,
- TRequestStatus& aStatus )
+void COMASUPLProtocolManager1::CancelUiLaunch()
{
- iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL"), KTraceFileName, __LINE__);
- TBuf<64> tempBuf;
-
- if ( iSuplSessions.Find(aSuplSessn) == KErrNotFound )
- {
- TRequestStatus *status = &aStatus;
- User::RequestComplete(status,KErrNotFound );
- return;
- }
-
- CheckForSessionCount();
- iRunningSessionCount++;
-
- COMASuplLocationId* locationId = COMASuplLocationId::NewL();
- COMASuplLocationId::TOMASuplStatus status = COMASuplLocationId::EStale;
- switch(aCellInfo.iGeoCellType)
- {
- case EGeoGsmCell:
- {
- iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL - Setting GSM Cell Info"), KTraceFileName, __LINE__);
- COMASuplGSMCellInfo* cellInfo = COMASuplGSMCellInfo::NewL();
- cellInfo->SetSuplGSMCellInfo(aCellInfo.iMNC,aCellInfo.iMCC,aCellInfo.iCid,aCellInfo.iLac);
- locationId->SetSuplLocationId(cellInfo,status);
- }
- break;
- case EGeoWcdmaCell:
- {
- iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL - Setting WCDMA Cell Info"), KTraceFileName, __LINE__);
- COMASuplCellInfo* cellInfo = COMASuplCellInfo::NewL();
- cellInfo->SetSuplCellInfo(aCellInfo.iMNC,aCellInfo.iMCC,aCellInfo.iCid);
- locationId->SetSuplLocationId(cellInfo,status);
- }
- break;
- }
-
- tempBuf.Copy(_L("MCC = "));
- tempBuf.AppendNum(aCellInfo.iMCC);
- iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
- tempBuf.Copy(_L("MNC = "));
- tempBuf.AppendNum(aCellInfo.iMNC);
- iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
- tempBuf.Copy(_L("LAC = "));
- tempBuf.AppendNum(aCellInfo.iLac);
- iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
- tempBuf.Copy(_L("CId = "));
- tempBuf.AppendNum(aCellInfo.iCid);
- iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
- tempBuf.Copy(_L("Prompt = "));
- tempBuf.AppendNum(aCellInfo.iConnectionPrompt);
- iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
-
- TInt allowedCapabilities = KECID|KCID;
- TInt requestID = 1000;
- COMASuplSession* OMASession = static_cast<COMASuplSession*>(aSuplSessn);
- OMASession->SetConfigurationParameters(iUT1_StartTimer,iUT2_PosInitTimer, iUT3_PosTimer,iPrivacyTimer,iSETMode,
- iSuplUsage, iPersistFailTimer,iSuplInitTimeOut);
- OMASession->RunSuplSessionL(aStatus,ETrue, KNullDesC,EFalse, allowedCapabilities,iRunningSessionCount,requestID,ETrue,locationId,aCellInfo.iConnectionPrompt,aCellInfo.iWlanOnly);
-
+ iTrace->Trace(_L("COMASUPLProtocolManager1::CancelUiLaunch"), KTraceFileName, __LINE__);
+ iSettingsLauncher->CancelLaunch();
}
-
-// -----------------------------------------------------------------------------
-// COMASUPLProtocolManager1::CancelLocationConversionRequest
-//
-// Cancel an ongoing conversion request
-// -----------------------------------------------------------------------------
-//
-void COMASUPLProtocolManager1::CancelLocationConversionRequest(CSuplSessionBase* aSuplSession)
- {
- // Log
- iTrace->Trace(_L("COMASUPLProtocolManager1::CancelLocationConversionRequest"), KTraceFileName, __LINE__);
-
- // Check if the Session is valid
- TInt index = iSuplSessions.Find(aSuplSession);
-
- if(KErrNotFound == index)
- {
- iTrace->Trace(_L("Cannot find Supl session."), KTraceFileName, __LINE__);
- return;
- }
- aSuplSession->CancelRunSession();
- return ;
- }
-
// end of file
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -128,7 +128,7 @@
iEtelRoamingCheck(EFalse),
iIapDialogShown(EFalse),
iIapDlgTimerExpired(EFalse),
- iOMASuplAsnHandlerBaseImpl(aOMASuplAsnHandlerBase),iWlanOnly(EFalse)
+ iOMASuplAsnHandlerBaseImpl(aOMASuplAsnHandlerBase)
{
}
@@ -193,6 +193,8 @@
iIapNotifier = COMASuplIapNotifier::NewL(*this);
+
+ iDialogTimer = COMASuplDialogTimer::NewL(*this);
iIsQoPPresent = EFalse;
iIsFirstPOSMessage = ETrue;
@@ -251,6 +253,7 @@
SessionEnd();
CompleteSession(KErrCancel);
}
+ iProtocolManager.CancelUiLaunch();
delete this;
}
@@ -310,14 +313,9 @@
delete iTimer;
delete iIapNotifier;
iIMSI.Close();
+ delete iDialogTimer;
delete iNetworkPrivacy;
-
- if(iStaleLocationId)
- {
- delete iStaleLocationId;
- iStaleLocationId = NULL;
- }
if(iTrace)
iTrace->Trace(_L("End of ~COMASuplSession::COMASuplSession"), KTraceFileName, __LINE__);
@@ -426,7 +424,7 @@
//
void COMASuplSession::RunSuplSessionL(TRequestStatus& aStatus, TBool aFirstReq, const TDesC& aHslpAddress,
TBool aFallBack, TInt aAllowedCapabilities,
- TInt aSessionIdSeed,TInt aRequestID,TBool aIsStaleCellId,COMASuplLocationId* aLocationId,TBool aPrompt,TBool aWlanOnly)
+ TInt aSessionIdSeed,TInt aRequestID)
{
iRunRequestStatus = & aStatus;
*iRunRequestStatus = KRequestPending;
@@ -434,32 +432,7 @@
iRequestID = aRequestID;
iTrace->Trace(_L("Start COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__);
-
- if(aIsStaleCellId)
- {
- iTrace->Trace(_L("Start COMASuplSession::RunSuplSession for Stale Cell Id"), KTraceFileName, __LINE__);
- iIsStaleLocIdPresent = ETrue;
-
-
- if(iStaleLocationId)
- {
- delete iStaleLocationId;
- iStaleLocationId = NULL;
- }
-
- iStaleLocationId = aLocationId;
- iStaleLocIdPrompt = aPrompt;
- iWlanOnly = aWlanOnly; //OCC
-
- iTrace->Trace(_L("Deleting pos requestor as session is for Stale Cell Id"), KTraceFileName, __LINE__);
- delete iOMASuplPOSRequestor;
- iOMASuplPOSRequestor = NULL;
-
- // Delete the POS Session
- delete iPOSSession;
- iPOSSession = NULL;
-
- }
+
// Log Session Id
TBuf<64> id;
id.Append(_L("Session Id is "));
@@ -472,27 +445,23 @@
iTrace->Trace(id,KTraceFileName, __LINE__);
iSETSessionUniqueId = aSessionIdSeed;
-
- iIhaveLaunchedUsagedialog = EFalse;
+
TInt networkMode = 1;
networkMode = GetNetworkModeL();
- if(!iWlanOnly) //OCC
- {
- if ( networkMode == ECoreAppUIsNetworkConnectionNotAllowed )
- {
- id.Copy(_L("The device is in OFFLINE mode."));
- iTrace->Trace(id,KTraceFileName, __LINE__);
- iSessionObserver.TerminateSession(this, KErrGeneral);
- return;
- }
- else
- {
- id.Copy(_L("The device is in ON LINE mode."));
- iTrace->Trace(id,KTraceFileName, __LINE__);
- }
- } //OCC
+ if ( networkMode == ECoreAppUIsNetworkConnectionNotAllowed )
+ {
+ id.Copy(_L("The device is in OFFLINE mode."));
+ iTrace->Trace(id,KTraceFileName, __LINE__);
+ iSessionObserver.TerminateSession(this, KErrGeneral);
+ return;
+ }
+ else
+ {
+ id.Copy(_L("The device is in ON LINE mode."));
+ iTrace->Trace(id,KTraceFileName, __LINE__);
+ }
if(aAllowedCapabilities == 0)
{
@@ -507,41 +476,17 @@
iSuplSessionId->SetSLPSessionID(NULL);
iConnRequestor->SetDefaultParametersL(aHslpAddress,aFallBack);
-
- id.Copy(_L("aFallBack value is "));
- id.AppendNum(aFallBack);
- iTrace->Trace(id,KTraceFileName, __LINE__);
-
- if(!iWlanOnly) //OCC
- {
- iTrace->Trace(_L("iWLANOnly false COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__);
-
- id.Copy(_L("aFirstReq value is "));
- id.AppendNum(aFirstReq);
- iTrace->Trace(id,KTraceFileName, __LINE__);
-
- if (aFirstReq)
- {
- iTrace->Trace(_L("start CheckForSuplUsageL COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__);
- CheckForSuplUsageL();
- }
- else
- {
- iTrace->Trace(_L("start CheckForPreviousResultL COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__);
- CheckForPreviousResultL();
- }
- }
- else
- {
- iTrace->Trace(_L("iWLANOnly true COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__);
- InitializeL(iRequestID);
- } //OCC
+
+ if (aFirstReq)
+ CheckForSuplUsageL();
+ else
+ CheckForPreviousResultL();
// Clear Position....
delete iPosition;
iPosition = NULL;
-
+
iTrace->Trace(_L("End of COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__);
}
@@ -560,7 +505,6 @@
TSuplTerminalQop& aQop, TInt aRequestID)
{
- iIhaveLaunchedUsagedialog = EFalse;
iClientQop = aQop;
@@ -709,18 +653,11 @@
COMASuplStartState* startSuplState = static_cast <COMASuplPosInitState *>(iSuplState);
startSuplState->SetQop(iClientQop);
}
- if(iIsStaleLocIdPresent)
- {
- iTrace->Trace(_L("GenerateSuplStartL setting stale location id in supl start"), KTraceFileName, __LINE__);
- COMASuplStartState* startSuplState = static_cast <COMASuplPosInitState *>(iSuplState);
- startSuplState->SetStaleCellIdToUse(iStaleLocationId->CloneL());
- }
- iSuplSessionState = ESUPL_GENERATE;
- iSuplMsgType = ESUPL_START;
+ //SMP Changes
+ iSuplMsgType = ESUPL_START;
+ SetPOSMsgPluginState(COMASuplPosSessionBase::EOMASuplCreating);
TInt err = iSuplState->GenerateMessageL();
-
-
- SetPOSMsgPluginState(COMASuplPosSessionBase::EOMASuplCreating);
+
}
@@ -763,12 +700,6 @@
iTrace->Trace(msg, KTraceFileName, __LINE__);
iSuplState = COMASuplPosInitState::NewL(iSETCapabilities, iMobilePhone, iUT2_PosInitTimer,
iOMASuplPOSRequestor,iAllowedCapabilities,iRequestType, iPosMethod,iOMASuplAsnHandlerBaseImpl);
- if(iIsStaleLocIdPresent)
- {
- iTrace->Trace(_L("COMASuplSession::GenerateSuplPosInitL() Setting Stale Location Id "), KTraceFileName, __LINE__);
- COMASuplPosInitState* posInitSuplState = static_cast <COMASuplPosInitState *>(iSuplState);
- posInitSuplState->SetStaleCellIdToUse(iStaleLocationId->CloneL());
- }
}
iSuplState->SetMsgStateObserver(this);
@@ -884,7 +815,6 @@
//
void COMASuplSession::OperationCompleteL(TInt aErrorCode)
{
- iTrace->Trace(_L("COMASuplSession::OperationCompleteL"), KTraceFileName, __LINE__);
TBuf<256> msg;
if(KErrNone != aErrorCode)
{
@@ -897,10 +827,6 @@
HandleSuplErrorL(aErrorCode);
return;
}
-
- msg.Copy(_L("iSuplSessionState : "));
- msg.AppendNum(iSuplSessionState);
- iTrace->Trace(msg, KTraceFileName, __LINE__);
TInt err = KErrNone;
@@ -962,15 +888,7 @@
}
else //terminal initiated case
{
- iTrace->Trace(_L("Connection block."), KTraceFileName, __LINE__);
- if(iIsStaleLocIdPresent)
- {
- TRAP( err, iConnRequestor->CreateConnectionL(iStaleLocIdPrompt,iWlanOnly) );
- }
- else
- {
- TRAP( err, iConnRequestor->CreateConnectionL() );
- }
+ TRAP( err, iConnRequestor->CreateConnectionL() );
}
if(KErrNone != err)
{
@@ -2056,7 +1974,15 @@
iTrace->Trace(msg,KTraceFileName, __LINE__);
}
-
+ CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage();
+
+ if (usage == CSuplSettings::ESuplUsageDisabled)
+ {
+ msg.Copy(_L("SUPL Usage is disabled"));
+ iTrace->Trace(msg,KTraceFileName, __LINE__);
+ iSessionObserver.TerminateSession(this, KErrGeneral);
+ return;
+ }
COMASuplAsnMessageBase::TSuplMessageType messageType = aDecodedAsnMessage->MessageType();
@@ -3808,6 +3734,16 @@
}
+// -----------------------------------------------------------------------------
+// COMASuplSession::SettingsUICompleted
+//
+// -----------------------------------------------------------------------------
+
+void COMASuplSession::SettingsUICompletedL(TInt /*aError*/)
+ {
+
+ }
+
// -----------------------------------------------------------------------------
// COMASuplSession::HandleInvalidMessageL
@@ -4109,7 +4045,56 @@
OperationCompleteL(KErrTimedOut);
}
-
+// -----------------------------------------------------------------------------
+// COMASuplSession::SettingsUsageUICompletedL
+//
+// -----------------------------------------------------------------------------
+void COMASuplSession::SettingsUsageUICompletedL(TInt aError)
+ {
+ iUIFlag = EFalse;
+ TBuf<64> msg;
+ msg.Copy(_L("SUPL Usage UI completed with ... "));
+ msg.AppendNum(aError);
+ iTrace->Trace(msg,KTraceFileName, __LINE__);
+
+ iPrevUsageResult = aError;
+
+
+ if (aError == KErrNone)
+ {
+ iProtocolManager.UpdateAllSubSessnsInSameSession(iIpcSessionId);
+
+ if (isTimeoutDialogTimerStarted)
+ {
+ iTrace->Trace(_L("COMASuplSession::SettingsUsageUICompletedL, stopping timer "), KTraceFileName, __LINE__);
+ isTimeoutDialogTimerStarted = EFalse;
+ iDialogTimer->StopTimer();
+
+ //Compute how log the dialog was on
+ TTime nowTime;
+ nowTime.HomeTime();
+ nowTime.SecondsFrom(iDlgStartTime, iDiffTime);
+ }
+ if (iNwInitError)
+ {
+ iNwInitError = EFalse;
+ HandleSuplInitErrorL(iNwInitCompletionCode);
+ }
+ else
+ InitializeL(iRequestID);
+ }
+ else if (aError == KErrCompletion)
+ CheckForSuplUsageL();
+ else
+ {
+ TBuf<64> msg;
+ msg.Copy(_L("Error after SUPL Usage Popup... "));
+ msg.AppendNum(aError);
+ iTrace->Trace(msg,KTraceFileName, __LINE__);
+ iSessionObserver.TerminateSession(this, KErrGeneral);
+ return;
+ }
+ }
// -----------------------------------------------------------------------------
// COMASuplSession::CheckForSuplUsageL
@@ -4118,23 +4103,37 @@
void COMASuplSession::CheckForSuplUsageL()
{
-
+ if (iSuplUsage >= 1)
+ {
+ CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage();
+ if (usage == CSuplSettings::ESuplUsageDisabled)
+ {
+ iSessionObserver.TerminateSession(this, KErrGeneral);
+ }
+ else if (usage == CSuplSettings::ESuplUsageAutomatic)
+ {
if (iNwInitError)
{
iNwInitError = EFalse;
HandleSuplInitErrorL(iNwInitCompletionCode);
}
else
- {
- if (iRoaming)
+ InitializeL(iRequestID);
+ }
+
+ else if (usage == CSuplSettings::ESuplUsageHomeAutomatic || usage == CSuplSettings::ESuplUsageAlwaysAsk)
+ {
+ if (iRoaming)
HandleRoamingCheckCompleteL(KErrNone, EFalse);
else
{
iEtelRoamingCheck = ETrue;
iProtocolManager.CheckForRoaming();
}
- }
-
+ }
+ }
+ else
+ InitializeL(iRequestID);
}
@@ -4217,7 +4216,80 @@
{
iUsageHomeNW = aHomeNw;
iConnRequestor->UpdateSLPListForHomeUsage(iUsageHomeNW);
-
+ CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage();
+
+ if (usage == CSuplSettings::ESuplUsageAlwaysAsk)
+ {
+ TInt err;
+ if (!aHomeNw)
+ {
+ iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__);
+ err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue);
+ }
+ else
+ {
+ iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is not roaming"), KTraceFileName, __LINE__);
+ err = iProtocolManager.LaunchSuplUsageSettingsUI(this, EFalse);
+ }
+
+ if(KErrNone != err && KErrInUse == err)
+ {
+ iTrace->Trace(_L("Dialog in use, setting flag"), KTraceFileName, __LINE__);
+ SetSuplUsageFlag();
+ }
+ if( KErrNone == err && iRequestType == ESUPL_NETWORK )
+ {
+ iTrace->Trace(_L("Network Session , starting timer"), KTraceFileName, __LINE__);
+ COMASuplInit* suplInit = static_cast <COMASuplInit*> (iDecodedAsnMessage);
+ TOMASuplQop qop;
+ TInt retVal = suplInit->Qop(qop);
+ TInt delay;
+ qop.Delay(delay);
+ //if delay is > 7, it is not valid
+ if (delay > 7)
+ delay = 0;
+ if(retVal == KErrNone && delay > 0)
+ {
+ TReal delayReal;
+ Math::Pow(delayReal, 2, (TReal)delay);
+ delay = (TInt) delayReal;
+ TBuf<128> msg(_L("Delay present in message, value is = "));
+ msg.AppendNum(delay);
+ iTrace->Trace(msg, KTraceFileName, __LINE__);
+ isTimeoutDialogTimerStarted = ETrue;
+ iDialogTimer->StartTimer(delay);
+ }
+ else
+ {
+ if (iSuplInitTimeOut > 0)
+ {
+ TBuf<256> msg(_L("Delay value in CR is"));
+ msg.AppendNum(iSuplInitTimeOut);
+ iTrace->Trace(msg, KTraceFileName, __LINE__);
+ iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond);
+ isTimeoutDialogTimerStarted = ETrue;
+ }
+ else
+ iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__);
+ }
+ iDlgStartTime.HomeTime();
+ }
+ else if (KErrNone != err)
+ {
+ iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__);
+ HandleSuplErrorL(err);
+ }
+
+ }
+ else if (usage == CSuplSettings::ESuplUsageHomeAutomatic)
+ {
+ if (!aHomeNw)
+ {
+ TInt err;
+ //if (!iSuplSettings->IsUIActive() )
+ {
+ iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__);
+ err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue);
if(iSuplMsgType == ESUPL_INIT)
{
@@ -4240,35 +4312,47 @@
msg.AppendNum(delay);
iTrace->Trace(msg, KTraceFileName, __LINE__);
isTimeoutDialogTimerStarted = ETrue;
-
+ iDialogTimer->StartTimer(delay);
}
else
{
if (iSuplInitTimeOut > 0)
{
isTimeoutDialogTimerStarted = ETrue;
-
+ iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond);
}
else
iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__);
}
}
-
+ }
+
+ if(!iSuplSettings->IsUIActive() && KErrNone != err)
+ {
+ SetSuplUsageFlag();
+ }
+ else
+ {
+ iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__);
+ HandleSuplErrorL(err);
+ }
+ }
+ else
+ {
if (iNwInitError)
{
iNwInitError = EFalse;
HandleSuplInitErrorL(iNwInitCompletionCode);
}
else
- {
- iTrace->Trace(_L("COMASuplSession::InitializeL called after roaming check"), KTraceFileName, __LINE__);
- InitializeL(iRequestID);
- }
+ InitializeL(iRequestID);
+ }
+ }
}
- else
- {
- iSessionObserver.TerminateSession(this, KErrGeneral);
- }
+ else
+ {
+ iSessionObserver.TerminateSession(this, KErrGeneral);
+ }
}
TInt COMASuplSession::SuplIpcSessionID()
{
@@ -4333,7 +4417,173 @@
return iUsageDialog;
}
-
+void COMASuplSession::StartUsageDialogLaunchL()
+ {
+ iTrace->Trace(_L("COMASuplSession::StartUsageDialogLaunchL"), KTraceFileName, __LINE__);
+ ReSetSuplUsageFlag();
+ iTrace->Trace(_L("COMASuplSession::StartUsageDialogLaunchL, flag reset done"), KTraceFileName, __LINE__);
+
+ CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage();
+ if (usage == CSuplSettings::ESuplUsageAlwaysAsk)
+ {
+ TInt err;
+ if (!iUsageHomeNW)
+ {
+ iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__);
+ err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue);
+
+ if(iRequestType == ESUPL_NETWORK && err == KErrNone)
+ {
+ iTrace->Trace(_L("starting Dialog timer "), KTraceFileName, __LINE__);
+
+ COMASuplInit* suplInit = static_cast <COMASuplInit*> (iDecodedAsnMessage);
+ TOMASuplQop qop;
+ TInt retVal = suplInit->Qop(qop);
+ TInt delay;
+ qop.Delay(delay);
+ //if delay is > 7, it is not valid
+ if (delay > 7)
+ delay = 0;
+ if(retVal == KErrNone && delay > 0)
+ {
+ TReal delayReal;
+ Math::Pow(delayReal, 2, (TReal)delay);
+ delay = (TInt) delayReal;
+ TBuf<128> msg(_L("Delay present in message, value is = "));
+ msg.AppendNum(delay);
+ iTrace->Trace(msg, KTraceFileName, __LINE__);
+ isTimeoutDialogTimerStarted = ETrue;
+ iDialogTimer->StartTimer(delay);
+ }
+ else
+ {
+ if (iSuplInitTimeOut > 0)
+ {
+ iTrace->Trace(_L("Delay not present in message"), KTraceFileName, __LINE__);
+ TBuf<256> msg(_L("Delay value in CR is "));
+ msg.AppendNum(iSuplInitTimeOut);
+ iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond);
+ isTimeoutDialogTimerStarted = ETrue;
+ }
+ else
+ iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__);
+ }
+ }
+ }
+ else
+ {
+ iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is not roaming"), KTraceFileName, __LINE__);
+ err = iProtocolManager.LaunchSuplUsageSettingsUI(this, EFalse);
+
+ if( iRequestType == ESUPL_NETWORK && err == KErrNone)
+ {
+ iTrace->Trace(_L("starting Dialog timer "), KTraceFileName, __LINE__);
+
+ COMASuplInit* suplInit = static_cast <COMASuplInit*> (iDecodedAsnMessage);
+ TOMASuplQop qop;
+ TInt retVal = suplInit->Qop(qop);
+ TInt delay;
+ qop.Delay(delay);
+ //if delay is > 7, it is not valid
+ if (delay > 7)
+ delay = 0;
+ if(retVal == KErrNone && delay > 0)
+ {
+ TReal delayReal;
+ Math::Pow(delayReal, 2, (TReal)delay);
+ delay = (TInt) delayReal;
+ TBuf<128> msg(_L("Delay present in message, value is = "));
+ msg.AppendNum(delay);
+ iTrace->Trace(msg, KTraceFileName, __LINE__);
+ isTimeoutDialogTimerStarted = ETrue;
+ iDialogTimer->StartTimer(delay);
+ }
+ else
+ {
+ if (iSuplInitTimeOut > 0)
+ {
+ iTrace->Trace(_L("Delay not present in message"), KTraceFileName, __LINE__);
+ TBuf<256> msg(_L("Delay value in CR is"));
+ msg.AppendNum(iSuplInitTimeOut);
+ iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond);
+ isTimeoutDialogTimerStarted = ETrue;
+ }
+ else
+ iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__);
+ }
+ }
+ }
+
+ if(KErrNone != err)
+ {
+ iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__);
+ HandleSuplErrorL(err);
+ }
+ }
+ else if (usage == CSuplSettings::ESuplUsageHomeAutomatic)
+ {
+ if (!iUsageHomeNW)
+ {
+ TInt err;
+ iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__);
+ err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue);
+
+ if(KErrNone != err)
+ {
+ iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__);
+ HandleSuplErrorL(err);
+ }
+
+ if(iRequestType == ESUPL_NETWORK && err == KErrNone)
+ {
+ iTrace->Trace(_L("starting Dialog timer "), KTraceFileName, __LINE__);
+
+ COMASuplInit* suplInit = static_cast <COMASuplInit*> (iDecodedAsnMessage);
+ TOMASuplQop qop;
+ TInt retVal = suplInit->Qop(qop);
+ TInt delay;
+ qop.Delay(delay);
+ //if delay is > 7, it is not valid
+ if (delay > 7)
+ delay = 0;
+ if(retVal == KErrNone && delay > 0)
+ {
+ TReal delayReal;
+ Math::Pow(delayReal, 2, (TReal)delay);
+ delay = (TInt) delayReal;
+ TBuf<128> msg(_L("Delay present in message, value is = "));
+ msg.AppendNum(delay);
+ iTrace->Trace(msg, KTraceFileName, __LINE__);
+ isTimeoutDialogTimerStarted = ETrue;
+ iDialogTimer->StartTimer(delay);
+ }
+ else
+ {
+ if (iSuplInitTimeOut > 0)
+ {
+ iTrace->Trace(_L("Delay not present in message"), KTraceFileName, __LINE__);
+ TBuf<256> msg(_L("Delay value in CR is"));
+ msg.AppendNum(iSuplInitTimeOut);
+ iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond);
+ isTimeoutDialogTimerStarted = ETrue;
+ }
+ else
+ iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__);
+ }
+ }
+ }
+ else
+ {
+ if (iNwInitError)
+ {
+ iNwInitError = EFalse;
+ HandleSuplInitErrorL(iNwInitCompletionCode);
+ }
+ else
+ InitializeL(iRequestID);
+ }
+ }
+ }
TBool COMASuplSession::IsEtelNotifySet()
{
@@ -4346,13 +4596,39 @@
iTrace->Trace(_L("COMASuplSession::IsEtelRoamingSet"), KTraceFileName, __LINE__);
return iEtelRoamingCheck;
}
-
-TBool COMASuplSession::HasMeLaunchedUsageDialog()
+
+// -----------------------------------------------------------------------------
+// COMASuplSession::DialogTimerExpiredL
+// Checks whether UI is displayed or not previously
+//
+// -----------------------------------------------------------------------------
+void COMASuplSession::DialogTimerExpiredL()
{
- return iIhaveLaunchedUsagedialog;
+ iTrace->Trace(_L("Timer Expired for SUPL Dialog"), KTraceFileName, __LINE__);
+
+ if (!iIapDialogShown)
+ iProtocolManager.LaunchSuplDialogTimeoutUI(this);
+ else
+ iIapDlgTimerExpired = ETrue;
+
+ return;
}
-
+// -----------------------------------------------------------------------------
+// COMASuplSession::SettingsTimeOutUICompletedL
+//
+// -----------------------------------------------------------------------------
+void COMASuplSession::SettingsTimeOutUICompletedL(TInt aError)
+ {
+
+ TBuf<64> msg;
+ msg.Copy(_L("SUPL Timeout UI completed with ... "));
+ msg.AppendNum(aError);
+ iTrace->Trace(msg,KTraceFileName, __LINE__);
+ iSessionObserver.TerminateSession(this, KErrGeneral);
+ return;
+
+ }
// -----------------------------------------------------------------------------
// COMASuplSession::StoreCurrentCellIDL
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsettingslauncher.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsettingslauncher.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -92,7 +92,6 @@
delete iSettingsLauncher;
iNotifier.Close();
delete iTrace;
- iIapSelector.Close();
}
@@ -101,10 +100,7 @@
iTrace = COMASuplTrace::NewL();
iTrace->Trace(_L("COMASuplSettingsLauncher::ConstructL"), KTraceFileName, __LINE__);
iSettingsLauncher = CLocSettingsUiClient::NewL();
- User::LeaveIfError(iNotifier.Connect());
- // Establish a connection to the RGenConAgentDialogServer
- User::LeaveIfError( iIapSelector.Connect());
-
+ User::LeaveIfError(iNotifier.Connect());
}
// -----------------------------------------------------------------------------
@@ -122,14 +118,21 @@
{
return KErrInUse;
}
-
- TRAPD(error,iSettingsLauncher->LaunchSettingsUiL( TUid::Uid( KLocSUPLSettingsUID ),
- ELocSUPLIAPSelection,
- iStatus ));
-
- iDialogType = ESUPLYesNoDialog;
- SetActive();
-
+ TRAPD(error,iSettingsLauncher->LaunchSettingsUiL( TUid::Uid( KLocSUPLSettingsUID ),
+ ELocSUPLIAPSelection,
+ iStatus ));
+ if (error != KErrNone)
+ {
+ iCallback.SettingsUICompletedL(error);
+ }
+ else
+ {
+ iDialogType = ESUPLYesNoDialog;
+ if (!IsActive())
+ {
+ SetActive();
+ }
+ }
return error;
}
@@ -292,26 +295,36 @@
iDialogType = ESUPLIAPDialog;
- TConnectionPrefs prefs; // filtering conditions for the access points list
- prefs.iRank = 1;
- prefs.iDirection = ECommDbConnectionDirectionOutgoing;
- prefs.iBearerSet = KUidCSDBearerType | KUidPacketDataBearerType;
+
// Launch the IAP Selector
iStatus = KRequestPending;
- iIapSelector.IapConnection( iSelectedIap, prefs, iStatus );
- SetActive();
- return KErrNone;
- }
-
-
-TInt COMASuplSettingsLauncher::GetIAPName(TDes& aIAPName,TUint32& aIAPId)
- {
- TRAPD( error, ConvertIAPIdtoNameL( iSelectedIap,aIAPName ));
- aIAPId = iSelectedIap;
- return error;
- }
-
+
+
+ TRAPD(error, iSettingsLauncher->LaunchSettingsUiL( TUid::Uid( KLocSUPLSettingsUID ),
+ ELocSuplIAPDialog,
+ iStatus );)
+ if(error != KErrNone)
+ {
+ iCallback.SettingsUICompletedL(error);
+ }
+ else
+ {
+ if (!IsActive())
+ {
+ SetActive();
+ }
+ }
+ return error;
+ }
+
+TInt COMASuplSettingsLauncher::GetIAPName(TDes& aIAPName, TUint32& aIAPId)
+ {
+ TRAPD( error, ConvertIAPIdtoNameL( iSelectedIap,aIAPName ));
+ aIAPId = iSelectedIap;
+ return error;
+ }
+
// ---------------------------------------------------------------------------
// TUint CLocSUPLSettingsUiEngine::ConvertIAPIdtoNameL()
// Convert IAP ID to IAP Name. If a valid name exists for the IAP Id
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplstartstate.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplstartstate.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -149,22 +149,8 @@
//
TInt COMASuplStartState::GenerateMessageL()
{
- iTrace->Trace(_L("Start of COMASuplStartState::GenerateMessage"), KTraceFileName, __LINE__);
- //if no cell stale cell id is available, retrieve current cell id
- if(!iIsStaleCellId)
- {
- iTrace->Trace(_L("COMASuplStartState::GenerateMessage stale cell id false"), KTraceFileName, __LINE__);
- iLocationIDRequestor->GetLocationID();
- iTrace->Trace(_L("COMASuplStartState::GenerateMessage called get location id"), KTraceFileName, __LINE__);
- }
- else // dont retrieve current cell id as cell id was already provided
- {
- iGenerationStatus = EFalse;
- iECId = EFalse;
- iTrace->Trace(_L("COMASuplStartState::GenerateMessage stale cell id true"), KTraceFileName, __LINE__);
- GetAssistceDataFromPluginL(KErrNone);
- }
-
+ iTrace->Trace(_L("Start of COMASuplStartState::GenerateMessage"), KTraceFileName, __LINE__);
+ iLocationIDRequestor->GetLocationID();
return KErrNone;
}
@@ -1010,15 +996,4 @@
aCurrentCellId.iMCC = lRefMCC;
aCurrentCellId.iLac = lRefLAC;
}
-}
-void COMASuplStartState::SetStaleCellIdToUse(COMASuplLocationId* aLocationId)
- {
- if(iLocationId)
- {
- delete iLocationId;
- iLocationId = NULL;
- }
- iLocationId = aLocationId;
- iIsStaleCellId = ETrue;
- }
-// End of File
+} // End of File
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/eabi/eposomasuplprotocolhandler2u.def Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/eabi/eposomasuplprotocolhandler2u.def Wed Oct 13 15:01:35 2010 +0300
@@ -41,35 +41,37 @@
_ZTI23COMASuplFallBackHandler @ 40 NONAME
_ZTI24COMASUPLProtocolManager2 @ 41 NONAME
_ZTI24COMASuplEcomEventWatcher @ 42 NONAME
- _ZTI24COMASuplTriggerStopState @ 43 NONAME
- _ZTI25COMASuplTriggerStartState @ 44 NONAME
- _ZTI28COMASuplTriggerResponseState @ 45 NONAME
- _ZTI29COMASuplCompleteSelfRequestor @ 46 NONAME
- _ZTV12COMASuplETel @ 47 NONAME
- _ZTV13COMASuplState @ 48 NONAME
- _ZTV13COMASuplTrace @ 49 NONAME
- _ZTV15COMASuplSession @ 50 NONAME
- _ZTV16COMASuplEndState @ 51 NONAME
- _ZTV16COMASuplPosState @ 52 NONAME
- _ZTV16COMASuplSettings @ 53 NONAME
- _ZTV17COMASuplInitState @ 54 NONAME
- _ZTV18COMASuplStartState @ 55 NONAME
- _ZTV19COMASuplDialogTimer @ 56 NONAME
- _ZTV19COMASuplIapNotifier @ 57 NONAME
- _ZTV19COMASuplReportState @ 58 NONAME
- _ZTV20COMASuplETelNotifier @ 59 NONAME
- _ZTV20COMASuplPOSRequestor @ 60 NONAME
- _ZTV20COMASuplPosInitState @ 61 NONAME
- _ZTV20COMASuplTimeoutTimer @ 62 NONAME
- _ZTV21COMASuplConnRequestor @ 63 NONAME
- _ZTV21COMASuplResponseState @ 64 NONAME
- _ZTV23COMASuplFallBackHandler @ 65 NONAME
- _ZTV24COMASUPLProtocolManager2 @ 66 NONAME
- _ZTV24COMASuplEcomEventWatcher @ 67 NONAME
- _ZTV24COMASuplTriggerStopState @ 68 NONAME
- _ZTV25COMASuplTriggerStartState @ 69 NONAME
- _ZTV28COMASuplTriggerResponseState @ 70 NONAME
- _ZTV29COMASuplCompleteSelfRequestor @ 71 NONAME
- _ZThn4_N24COMASUPLProtocolManager212HandlePacketERK6TDesC8j @ 72 NONAME
- _ZThn4_N24COMASUPLProtocolManager217HandlePacketErrorEi @ 73 NONAME
+ _ZTI24COMASuplSettingsLauncher @ 43 NONAME
+ _ZTI24COMASuplTriggerStopState @ 44 NONAME
+ _ZTI25COMASuplTriggerStartState @ 45 NONAME
+ _ZTI28COMASuplTriggerResponseState @ 46 NONAME
+ _ZTI29COMASuplCompleteSelfRequestor @ 47 NONAME
+ _ZTV12COMASuplETel @ 48 NONAME
+ _ZTV13COMASuplState @ 49 NONAME
+ _ZTV13COMASuplTrace @ 50 NONAME
+ _ZTV15COMASuplSession @ 51 NONAME
+ _ZTV16COMASuplEndState @ 52 NONAME
+ _ZTV16COMASuplPosState @ 53 NONAME
+ _ZTV16COMASuplSettings @ 54 NONAME
+ _ZTV17COMASuplInitState @ 55 NONAME
+ _ZTV18COMASuplStartState @ 56 NONAME
+ _ZTV19COMASuplDialogTimer @ 57 NONAME
+ _ZTV19COMASuplIapNotifier @ 58 NONAME
+ _ZTV19COMASuplReportState @ 59 NONAME
+ _ZTV20COMASuplETelNotifier @ 60 NONAME
+ _ZTV20COMASuplPOSRequestor @ 61 NONAME
+ _ZTV20COMASuplPosInitState @ 62 NONAME
+ _ZTV20COMASuplTimeoutTimer @ 63 NONAME
+ _ZTV21COMASuplConnRequestor @ 64 NONAME
+ _ZTV21COMASuplResponseState @ 65 NONAME
+ _ZTV23COMASuplFallBackHandler @ 66 NONAME
+ _ZTV24COMASUPLProtocolManager2 @ 67 NONAME
+ _ZTV24COMASuplEcomEventWatcher @ 68 NONAME
+ _ZTV24COMASuplSettingsLauncher @ 69 NONAME
+ _ZTV24COMASuplTriggerStopState @ 70 NONAME
+ _ZTV25COMASuplTriggerStartState @ 71 NONAME
+ _ZTV28COMASuplTriggerResponseState @ 72 NONAME
+ _ZTV29COMASuplCompleteSelfRequestor @ 73 NONAME
+ _ZThn4_N24COMASUPLProtocolManager212HandlePacketERK6TDesC8j @ 74 NONAME
+ _ZThn4_N24COMASUPLProtocolManager217HandlePacketErrorEi @ 75 NONAME
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/group/omasuplprotocolhandler2.mmp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/group/omasuplprotocolhandler2.mmp Wed Oct 13 15:01:35 2010 +0300
@@ -52,6 +52,7 @@
SOURCE epos_comasuplinitstate.cpp
SOURCE epos_comasuplposrequestor.cpp
SOURCE epos_comasuplecomeventwatcher.cpp
+SOURCE epos_comasuplsettingslauncher.cpp
SOURCE epos_comasupltrace.cpp
SOURCE epos_comasupldialogtimer.cpp
SOURCE epos_comasuplfallbackhandler.cpp
@@ -87,7 +88,7 @@
LIBRARY insock.lib
LIBRARY lbs.lib
LIBRARY eposnwprv.lib
-
+LIBRARY locsettingsuiclient.lib
LIBRARY hash.lib
LIBRARY bafl.lib //logging
LIBRARY flogger.lib
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplconnrequestor.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplconnrequestor.h Wed Oct 13 15:01:35 2010 +0300
@@ -40,7 +40,9 @@
* @since S60 v3.1
*/
-class COMASuplConnRequestor : public CActive
+class COMASuplConnRequestor : public CActive,
+ public MOMASuplUICompletionObserver,
+ public MOMASuplDialogTimeOutNotifier
{
enum TConnState
@@ -170,6 +172,9 @@
void GetUsedServerAddress(TDes& aHSLPAddressUsed);
+ void SettingsUICompletedL(TInt aError);
+ void SettingsUsageUICompletedL(TInt /*aError*/) {}
+ void SettingsTimeOutUICompletedL(TInt /*aError*/) {}
TBool ConvertIAPNameToIdL(const TDesC& aIAPName, TUint32& aIAPId);
void UpdateNetInfo(const TTime& aLastTimeUsed,TInt& aMcc,TInt& aMnc,
TInt& aCid,TInt& aLac,TInt& aType,TInt& aErrorCode);
@@ -209,7 +214,13 @@
void SaveAccessPoint(const TDesC& aIapName);
-
+ /**
+ * Dialog Timeout Notifier Method.
+ * @since Series 60 9.1 TB
+ * @param None
+ * @return None
+ */
+ virtual void DialogTimerExpiredL();
protected : // Functions from CActive
/**
* From CActive
@@ -282,7 +293,15 @@
TInt64 iCurrentSLPId;
- TBool iTriggerSession;
+ COMASuplDialogTimer* iDialogTimer;
+
+ TBool iIapDialogShown;
+
+ TBool iIapDlgTimerExpired;
+
+ TBool iIsTimeoutDialogTimerStarted;
+
+ TBool iTriggerSession;
};
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplprotocolmanager2.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplprotocolmanager2.h Wed Oct 13 15:01:35 2010 +0300
@@ -81,6 +81,7 @@
public MOMASuplSessionObserver,
public MSuplSettingsObserver,
public MOMASuplTimeOutNotifier,
+ public MOMASuplUISettingsObserver,
public MOMASuplETelNotifierObserver,
public MSuplSessionObserver
{
@@ -275,14 +276,39 @@
*/
virtual void TerminateSession(CSuplSessionBase *aSession, TInt aErrorCode);
-public:
-
+public: // For setting UI observer
+ TInt LaunchSettingsUI(MOMASuplUICompletionObserver* aObserver,const TDesC& aForHslp);
+ TInt LaunchSuplUsageSettingsUI(MOMASuplUICompletionObserver* aObserver, TBool aRoaming);
+ TInt LaunchSuplDialogTimeoutUI(MOMASuplUICompletionObserver* aObserver );
void UpdateAllSubSessnsInSameSession(TInt aIpcSessionId);
void SettingsChanged();
-
-
+ TInt GetLastUsedAccessPoint(TDes& aLastlyUsedAccessPoint,TUint32& iIAPId);
+ /**
+ * This callback method is used to notify the client about
+ * the completion of UI launch
+ * @param aError - Error during Launch
+ * @return None
+ */
+ void SettingsUICompletedL(TInt aError);
+
+ /**
+ * This callback method is used to notify the client about
+ * the completion of UI launch
+ * @param aError - Error during Launch
+ * @return None
+ */
+ void SettingsUsageUICompletedL(TInt aError);
+
+ /**
+ * This callback method is used to notify the client about
+ * the completion of UI completion
+ * @param aError - Error during Launch
+ * @return None
+ */
+ void SettingsTimeOutUICompletedL(TInt aError);
+
public: //From base class MSuplSettingsObserver
/**
@@ -445,7 +471,13 @@
*/
void ReadOMASuplSettingsL();
-
+ /**
+ * ReadSuplUsage, Reads OMA Supl Usage.
+ * @since S60 v3.1u
+ * @param None.
+ * @return None.
+ */
+ void ReadSuplUsage();
/**
* ReadOMASuplConfigurationL, Reads OMA Supl Configuration.
@@ -471,7 +503,7 @@
TInt GetNetworkModeL();
-
+ void CheckOutstandingUsageUIRequestsL();
/**
* LoadOMASUPLPluginsL, Loads supl protocolhandler plugins
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsession2.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsession2.h Wed Oct 13 15:01:35 2010 +0300
@@ -97,6 +97,7 @@
class COMASuplSession : public CSuplSessionBase,
public MOMASuplConnObserver,
+ public MOMASuplUICompletionObserver,
public MCompleteSelfRequest,
public MOMASuplMsgStateObserver,
public MOMASuplObserver,
@@ -215,7 +216,27 @@
*/
void GetPositionCompleteL(TInt aError);
-
+ /**
+ * This callback method is used to notify the client about
+ * the completion of UI launch
+ * @param aError - Error during Launch
+ * @return None
+ */
+ void SettingsUICompletedL(TInt aError);
+
+ /**
+ * This callback method is used to notify the client about
+ * the completion of UI
+ * @return None
+ */
+ void SettingsUsageUICompletedL(TInt aError);
+
+ /**
+ * This callback method is used to notify the client about
+ * the completion of UI
+ * @return None
+ */
+ void SettingsTimeOutUICompletedL(TInt aError);
public:
/**
@@ -362,6 +383,13 @@
*/
TInt SuplIpcSessionID();
+ /**
+ * UpdateSuplUsage Method. Updates SUPL usage
+ * @since S60 v3.2
+ * @param None
+ * @return None
+ */
+ void UpdateSuplUsage();
/**
* SettingsChanged Method. Updates flag to indicate that
@@ -1004,8 +1032,10 @@
*/
virtual void DialogTimerExpiredL();
public: // Usage dialog
-
-
+ void SetSuplUsageFlag();
+ void ReSetSuplUsageFlag();
+ TBool GetSuplUsageFlag();
+ void StartUsageDialogLaunchL();
TBool IsEtelNotifySet();
TBool IsEtelRoamingSet();
TUint GetPortNumUsed();
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsettings.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsettings.h Wed Oct 13 15:01:35 2010 +0300
@@ -90,7 +90,13 @@
*/
void SetIAPId(TInt aIAPId);
-
+ /**
+ * SetSUPLUsage Method.
+ * @since S60 v3.2
+ * @param aSUPLUsage
+ * @return None
+ */
+ void SetSUPLUsage(CSuplSettings::TSuplSettingsUsage& aSUPLUsage );
/**
* SetUIActive Method.
@@ -125,7 +131,13 @@
*/
TInt IAPId() const;
-
+ /**
+ * SUPL Usage Method.
+ * @since S60 v3.2
+ * @param None
+ * @return SUPL Usage
+ */
+ CSuplSettings::TSuplSettingsUsage SUPLUsage() const;
/**
* IAPId Method.
@@ -153,7 +165,8 @@
// IAP Id
TInt iIAPId;
-
+ // SUPL Usage
+ CSuplSettings::TSuplSettingsUsage iSUPLUsage;
// Flag indicating the activation of settings UI
TBool iSettingsUIActive;
};
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplstate.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplstate.h Wed Oct 13 15:01:35 2010 +0300
@@ -25,6 +25,8 @@
#define PRINT_MESSAGE
#endif
+//#undef PRINT_MESSAGE
+
/**
MOMASuplMsgStateObserver Notifies about complaetion of operation with or without error.
* @lib eposomasuplprotocolhandler.lib
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplconnrequestor.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplconnrequestor.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -47,8 +47,11 @@
iCommMgr(aCommMgr),
iProtocolManager(aProtoMgr),
iPort(aPort),
- iObserver( aObserver),
- iTriggerSession(EFalse)
+ iObserver( aObserver),
+ iIapDialogShown(EFalse),
+ iIapDlgTimerExpired(EFalse),
+ iIsTimeoutDialogTimerStarted(EFalse),
+ iTriggerSession(EFalse)
{
}
@@ -75,7 +78,7 @@
iCurrentSLPId = KErrNotFound;
-
+ iDialogTimer = COMASuplDialogTimer::NewL(*this);
}
// -----------------------------------------------------------------------------
@@ -105,8 +108,13 @@
COMASuplConnRequestor::~COMASuplConnRequestor()
{
Cancel();
-
- delete iSuplSettings;
+ if(iDialogTimer)
+ {
+ iDialogTimer->Cancel();
+ delete iDialogTimer;
+ iDialogTimer = NULL;
+ }
+ delete iSuplSettings;
delete iTrace;
delete iFallBackHandler;
}
@@ -147,14 +155,27 @@
buffer.Copy(_L("No access point configured for "));
buffer.Append(iHostAddress);
iTrace->Trace(buffer,KTraceFileName, __LINE__);
- buffer.Copy(_L("Calling CreateConnection with no IAP"));
- iTrace->Trace(buffer,KTraceFileName, __LINE__);
- iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,-1);
- OpenConnection();
+ if( isIapDialogShown )
+ {
+ TInt err = iProtocolManager.LaunchSettingsUI(this,iHostAddress);
+ if(err != KErrNone)
+ {
+ buffer.Copy(_L("Error in launching UI : "));
+ buffer.AppendNum(err);
+ iTrace->Trace(buffer,KTraceFileName, __LINE__);
+ iHostAddress.Zero();
+ iObserver.OperationCompleteL(err);
+ }
+ else
+ iIapDialogShown = ETrue;
+ }
+
}
else
{
+ iIsTimeoutDialogTimerStarted = EFalse;
+ iDialogTimer->Cancel();
buffer.Copy(_L("Connecting to "));
buffer.Append(iHostAddress);
iTrace->Trace(buffer,KTraceFileName, __LINE__);
@@ -174,8 +195,11 @@
// COMASuplConnRequestor::OpenConnection
// -----------------------------------------------------------------------------
//
-void COMASuplConnRequestor::CreateConnectionL(TInt /*aDialogTimeOutDelay*/, TBool aTriggerSession)
+void COMASuplConnRequestor::CreateConnectionL(TInt aDialogTimeOutDelay, TBool aTriggerSession)
{
+ iIsTimeoutDialogTimerStarted = ETrue;
+
+ iDialogTimer->StartTimer(aDialogTimeOutDelay);
CreateConnectionL(aTriggerSession);
}
// -----------------------------------------------------------------------------
@@ -452,7 +476,57 @@
return result;
}
+// -----------------------------------------------------------------------------
+// COMASuplConnRequestor::SettingsUICompleted
+//
+// -----------------------------------------------------------------------------
+void COMASuplConnRequestor::SettingsUICompletedL(TInt aError)
+ {
+ TBuf<128> buffer(_L("COMASuplConnRequestor:SettingsUICompleted Error: "));
+ buffer.AppendNum(aError);
+ iTrace->Trace(buffer,KTraceFileName, __LINE__);
+
+ if (iIsTimeoutDialogTimerStarted)
+ {
+ iTrace->Trace(_L("COMASuplSession::SettingsUICompleted, stopping timer "), KTraceFileName, __LINE__);
+ iIsTimeoutDialogTimerStarted = EFalse;
+ iDialogTimer->StopTimer();
+ }
+ if (iIapDlgTimerExpired)
+ {
+ iIapDlgTimerExpired = EFalse;
+ iIapDialogShown = EFalse;
+ iProtocolManager.LaunchSuplDialogTimeoutUI(this);
+ iObserver.OperationCompleteL(KErrNone);
+ return;
+ }
+ if(aError == KErrNone)
+ {
+ TBuf<100> IapName;
+ TInt err = iProtocolManager.GetLastUsedAccessPoint(IapName,iIAPId);
+ if(err == KErrNone)
+ {
+ buffer.Copy(_L("Connecting to "));
+ buffer.Append(iHostAddress);
+ buffer.Append(_L(" using IAP "));
+ buffer.Append(IapName);
+ iTrace->Trace(buffer,KTraceFileName, __LINE__);
+ iConnection = iCommMgr.CreateConnectionL(iHostAddress,iTls,iPskTls,iPort,iIAPId);
+ SaveAccessPoint(IapName);
+ OpenConnection();
+ }
+ else
+ {
+ iObserver.OperationCompleteL(err);
+ }
+ }
+ else
+ {
+ iObserver.OperationCompleteL(aError);
+ }
+
+ }
// -----------------------------------------------------------------------------
// COMASuplConnRequestor::SaveAccessPoint
@@ -520,13 +594,25 @@
iFallBackHandler->UpdateSLPListForHomeUsage(aHomeNetwork);
}
+// -----------------------------------------------------------------------------
+// COMASuplConnRequestor::DialogTimerExpiredL
+// Checks whether UI is displayed or not previously
+//
+// -----------------------------------------------------------------------------
+void COMASuplConnRequestor::DialogTimerExpiredL()
+{
+ iTrace->Trace(_L("COMASuplConnRequestor:Timer Expired for SUPL IAP Dialog"), KTraceFileName, __LINE__);
+
+ if (!iIapDialogShown)
+ iProtocolManager.LaunchSuplDialogTimeoutUI(this);
+ else
+ iIapDlgTimerExpired = ETrue;
+ return;
+}
TUint COMASuplConnRequestor::GetPortNumber()
{
- if(iConnection)
- return iConnection->GetPortNumberUsed();
- else
- return 0;
+ return iConnection->GetPortNumberUsed();
}
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasupletel.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasupletel.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Implementation of COMASuplEtel Class
-* Version : %version: 3.1.1 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: 3 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -520,7 +520,7 @@
for(TInt k = 0; k < KOMASUPLMaxTimeSlotIscpAmount; k++ )
{
- iOMASuplwcdmaCellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k] = iCustomWCDMACellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k];
+ iOMASuplwcdmaCellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k] = iOMASuplwcdmaCellInfo.iNwkMeasureReport[i].iCellMeasuredResult[j].iTddInfo.iTimeslotISCP[k];
}
}
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplinitstate.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplinitstate.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -383,8 +383,8 @@
// what decision the GSM Network will make if the user won't answer before
// a timeout comes in from GSM Network. In this case verification will
// be rejected.
- TRAP_IGNORE(iNetworkPrivacy->VerifyLocationRequestL(*suplReqInfo,
- iGSMRequestId, *this, aTimeOutStrategy);)
+ iNetworkPrivacy->VerifyLocationRequestL(*suplReqInfo,
+ iGSMRequestId, *this, aTimeOutStrategy);
TBuf<64> msg;
msg.Copy(_L("Privacy Fw Generated Verification Request id : "));
msg.AppendNum(iGSMRequestId);
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplprotocolmanager2.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplprotocolmanager2.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -104,7 +104,10 @@
// Destructor.
EXPORT_C COMASUPLProtocolManager2::~COMASUPLProtocolManager2()
{
-
+ if(iSettingsLauncher)
+ {
+ iSettingsLauncher->CancelLaunch();
+ }
if(iSuplSettings)
{
@@ -133,7 +136,7 @@
}
delete iSuplStorageSettings;
-
+ delete iSettingsLauncher;
delete iNotifier;
iMobilePhone.Close();
iTelServer.Close();
@@ -166,7 +169,7 @@
iSuplStorageSettings->SetObserverL(*this);
iSuplStorageSettings->SetSessionObserverL(*this);
-
+ iSettingsLauncher = COMASuplSettingsLauncher::NewL( *this );
TRAPD(err,iOMASuplAsnHandlerBaseImpl = COMASuplAsnHandlerBase::NewL(2);)
TBuf<64> buf(_L("ASN Plugin 2.0 loaded with error : "));
@@ -254,7 +257,7 @@
//Connect to ETel
User::LeaveIfError(ConnectToETelL());
-
+ ReadSuplUsage();
if(iSuplEcomEventWatcher)
{
@@ -1248,7 +1251,7 @@
if( aEvent == MSuplSettingsObserver::ESuplSettingsEventSuplUsageChange)
{
iTrace->Trace(_L("Setting Changed.SUPL Usage changed.. Reeading once again..."), KTraceFileName, __LINE__);
-
+ ReadSuplUsage();
}
else if( aEvent == MSuplSettingsObserver::ESuplSettingsEventCommParameterChange)
{
@@ -1257,9 +1260,6 @@
}
}
-
-
-
// -----------------------------------------------------------------------------
// COMASUPLProtocolManager2::LogPacket
// Logs
@@ -1742,6 +1742,72 @@
}
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager2::LaunchSettingsUI
+//
+//
+// -----------------------------------------------------------------------------
+//
+TInt COMASUPLProtocolManager2::LaunchSettingsUI(MOMASuplUICompletionObserver* aObserver,const TDesC& aForHslp)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager2::LaunchSettingsUI"), KTraceFileName, __LINE__);
+
+ if (iSuplSettings->IsUIActive())
+ return KErrInUse;
+ iSessnUIObserver = aObserver;
+ iSuplSettings->SetUIActive(ETrue);
+
+ if(iUIRequestArray.Count() <= 0 )
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager2::LaunchSettingsUI"), KTraceFileName, __LINE__);
+ iUIRequestArray.Append(aObserver);
+ iSuplSettings->SetUIActive(ETrue);
+ iCurrentlyUsedHslp.Copy(aForHslp);
+ return iSettingsLauncher->LaunchSettings();
+ }
+ else if(iCurrentlyUsedHslp.Compare(aForHslp) == KErrNone)
+ {
+ iUIRequestArray.Append(aObserver);
+ }
+ else
+ {
+ return KErrInUse;
+ }
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager2::SettingsUICompletedL
+//
+//
+// -----------------------------------------------------------------------------
+//
+void COMASUPLProtocolManager2::SettingsUICompletedL(TInt aError)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUICompletedL"), KTraceFileName, __LINE__);
+ iSuplSettings->SetUIActive(EFalse);
+
+ if (iDeInitDone)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUICompletedL, de-init done. Completing request"), KTraceFileName, __LINE__);
+ iDeInitDone = EFalse;
+ User::RequestComplete(iDeInitRequestStatus,KErrNone);
+ }
+ else
+ {
+ for(TInt i = 0; i < iUIRequestArray.Count(); i++)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUICompletedL,Forwarding ConnRerquestor "), KTraceFileName, __LINE__);
+ MOMASuplUICompletionObserver* observer = iUIRequestArray[i];
+ observer->SettingsUICompletedL(aError);
+ }
+ }
+
+ iCurrentlyUsedHslp.Copy(_L(""));
+ iUIRequestArray.Reset();
+ }
+
// -----------------------------------------------------------------------------
// COMASUPLProtocolManager2::DeInitialize
@@ -1798,10 +1864,73 @@
return networkMode;
}
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager2::LaunchSuplUsageSettingsUI
+//
+//
+// -----------------------------------------------------------------------------
+//
+TInt COMASUPLProtocolManager2::LaunchSuplUsageSettingsUI(MOMASuplUICompletionObserver* aObserver, TBool aRoaming)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager2::LaunchSuplUsageSettingsUI"), KTraceFileName, __LINE__);
+ if (iSuplSettings->IsUIActive() && !iTimeOutDialogPresent)
+ return KErrInUse;
+ // If timeout dialog is present, close it
+ if (iTimeOutDialogPresent)
+ {
+ iTimeOutDialogPresent = EFalse;
+ iSuplSettings->SetUIActive(EFalse);
+ iSettingsLauncher->Cancel();
+ }
+ iSessnUIObserver = aObserver;
+ iSuplSettings->SetUIActive(ETrue);
+ return iSettingsLauncher->LaunchSuplUsageSettingsUI(aRoaming);
+ }
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager2::SettingsUsageUICompletedL
+//
+//
+// -----------------------------------------------------------------------------
+//
+void COMASUPLProtocolManager2::SettingsUsageUICompletedL(TInt aError)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUsageUICompletedL"), KTraceFileName, __LINE__);
+ iSuplSettings->SetUIActive(EFalse);
+ if (iDeInitDone)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsUsageUICompletedL, de-init done. Completing request"), KTraceFileName, __LINE__);
+ iDeInitDone = EFalse;
+ User::RequestComplete(iDeInitRequestStatus,KErrNone);
+ }
+ else
+ {
+ if (iSessnUIObserver)
+ iSessnUIObserver->SettingsUsageUICompletedL(aError);
+ }
+ CheckOutstandingUsageUIRequestsL();
+ }
+
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager2::ReadSuplUsage
+// Reads Supl Usage from Central Repository
+//
+// -----------------------------------------------------------------------------
+//
+void COMASUPLProtocolManager2::ReadSuplUsage()
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager2::ReadSuplUsage start"), KTraceFileName, __LINE__);
+ CSuplSettings::TSuplSettingsUsage suplUsage;
+ TInt err = iSuplStorageSettings->GetSuplUsage(suplUsage);
+ if(err == KErrNone )
+ {
+ iSuplSettings->SetSUPLUsage(suplUsage);
+ }
+ iTrace->Trace(_L("COMASUPLProtocolManager2::ReadSuplUsage end"), KTraceFileName, __LINE__);
+ }
void COMASUPLProtocolManager2::UpdateAllSubSessnsInSameSession(TInt aIpcSessionId)
{
@@ -1813,6 +1942,8 @@
OMAsuplSession = static_cast<COMASuplSession*>(iSuplSessions[cnt]);
TInt ipcSessnId = OMAsuplSession->SuplIpcSessionID();
+ if (ipcSessnId > 0 && ipcSessnId == aIpcSessionId)
+ OMAsuplSession->UpdateSuplUsage();
}
}
@@ -1828,7 +1959,23 @@
OMAsuplSession->SettingsChanged();
}
}
-
+
+void COMASUPLProtocolManager2::CheckOutstandingUsageUIRequestsL()
+ {
+ TInt TotalSession = iSuplSessions.Count();
+ COMASuplSession* OMAsuplSession = NULL;
+
+ for(TInt cnt = 0; cnt < TotalSession; ++cnt)
+ {
+ OMAsuplSession = static_cast<COMASuplSession*>(iSuplSessions[cnt]);
+
+ if (OMAsuplSession->GetSuplUsageFlag())
+ {
+ OMAsuplSession->StartUsageDialogLaunchL();
+ break;
+ }
+ }
+ }
void COMASUPLProtocolManager2::CheckForRoaming()
{
@@ -1908,7 +2055,63 @@
}
}
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager2::LaunchSuplDialogTimeoutUI
+//
+//
+// -----------------------------------------------------------------------------
+//
+TInt COMASUPLProtocolManager2::LaunchSuplDialogTimeoutUI(MOMASuplUICompletionObserver* aObserver )
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager2::LaunchTimeOutUI"), KTraceFileName, __LINE__);
+
+ iSessnUIObserver = aObserver;
+ if (iSuplSettings->IsUIActive())
+ {
+ iSuplSettings->SetUIActive(EFalse);
+ iSettingsLauncher->Cancel();
+ }
+ iSuplSettings->SetUIActive(ETrue);
+ iTimeOutDialogPresent = ETrue;
+ return iSettingsLauncher->LaunchSessionTimeOutDialog();
+ }
+
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager2::SettingsTimeOutUICompletedL
+//
+//
+// -----------------------------------------------------------------------------
+//
+void COMASUPLProtocolManager2::SettingsTimeOutUICompletedL(TInt aError)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsTimeOutUICompletedL"), KTraceFileName, __LINE__);
+ iSuplSettings->SetUIActive(EFalse);
+ iTimeOutDialogPresent = EFalse;
+
+ if (iDeInitDone)
+ {
+ iTrace->Trace(_L("COMASUPLProtocolManager2::SettingsTimeOutUICompletedL, Completing request"), KTraceFileName, __LINE__);
+ iDeInitDone = EFalse;
+ User::RequestComplete(iDeInitRequestStatus,KErrNone);
+ }
+ else
+ {
+ if (iSessnUIObserver)
+ iSessnUIObserver->SettingsTimeOutUICompletedL(aError);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager2::GetLastUsedAccessPoint
+//
+//
+// -----------------------------------------------------------------------------
+//
+TInt COMASUPLProtocolManager2::GetLastUsedAccessPoint(TDes& aLastlyUsedAccessPoint,TUint32& iIAPId)
+ {
+ return iSettingsLauncher->GetIAPName(aLastlyUsedAccessPoint,iIAPId);
+ }
// -----------------------------------------------------------------------------
// COMASUPLProtocolManager2::PrintHex
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplsession2.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplsession2.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -2177,7 +2177,15 @@
iTrace->Trace(msg,KTraceFileName, __LINE__);
}
-
+ CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage();
+
+ if (usage == CSuplSettings::ESuplUsageDisabled)
+ {
+ msg.Copy(_L("SUPL Usage is disabled"));
+ iTrace->Trace(msg,KTraceFileName, __LINE__);
+ iSessionObserver.TerminateSession(this, KErrGeneral);
+ return;
+ }
COMASuplAsnMessageBase::TSuplMessageType messageType = aDecodedAsnMessage->MessageType();
@@ -4344,6 +4352,17 @@
}
+// -----------------------------------------------------------------------------
+// COMASuplSession::SettingsUICompleted
+//
+// -----------------------------------------------------------------------------
+
+void COMASuplSession::SettingsUICompletedL(TInt /*aError*/)
+ {
+ iTrace->Trace(_L("COMASuplSession::SettingsUICompleted ..."), KTraceFileName, __LINE__);
+
+ }
+
// -----------------------------------------------------------------------------
// COMASuplSession::HandleInvalidMessageL
@@ -4675,7 +4694,57 @@
OperationCompleteL(KErrTimedOut);
}
-
+// -----------------------------------------------------------------------------
+// COMASuplSession::SettingsUsageUICompletedL
+//
+// -----------------------------------------------------------------------------
+void COMASuplSession::SettingsUsageUICompletedL(TInt aError)
+ {
+ iUIFlag = EFalse;
+ TBuf<64> msg;
+ msg.Copy(_L("SUPL Usage UI completed with ... "));
+ msg.AppendNum(aError);
+ iTrace->Trace(msg,KTraceFileName, __LINE__);
+
+ iPrevUsageResult = aError;
+
+
+
+ if (aError == KErrNone)
+ {
+ iProtocolManager.UpdateAllSubSessnsInSameSession(iIpcSessionId);
+
+ if (isTimeoutDialogTimerStarted)
+ {
+ iTrace->Trace(_L("COMASuplSession::SettingsUsageUICompletedL, stopping timer "), KTraceFileName, __LINE__);
+ isTimeoutDialogTimerStarted = EFalse;
+ iDialogTimer->StopTimer();
+
+ //Compute how log the dialog was on
+ TTime nowTime;
+ nowTime.HomeTime();
+ nowTime.SecondsFrom(iDlgStartTime, iDiffTime);
+ }
+ if (iNwInitError)
+ {
+ iNwInitError = EFalse;
+ HandleSuplInitErrorL(iNwInitCompletionCode);
+ }
+ else
+ InitializeL(iRequestID);
+ }
+ else if (aError == KErrCompletion)
+ CheckForSuplUsageL();
+ else
+ {
+ TBuf<64> msg;
+ msg.Copy(_L("Error after SUPL Usage Popup... "));
+ msg.AppendNum(aError);
+ iTrace->Trace(msg,KTraceFileName, __LINE__);
+ iSessionObserver.TerminateSession(this, KErrGeneral);
+ return;
+ }
+ }
// -----------------------------------------------------------------------------
// COMASuplSession::CheckForSuplUsageL
@@ -4684,24 +4753,42 @@
void COMASuplSession::CheckForSuplUsageL()
{
iTrace->Trace(_L("COMASuplSession::CheckForSuplUsageL Start"), KTraceFileName, __LINE__);
-
+
+ if (iSuplUsage >= 1)
+ {
+ CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage();
+ if (usage == CSuplSettings::ESuplUsageDisabled)
+ {
+ iTrace->Trace(_L("CheckForSuplUsageL, SUPL disabled"), KTraceFileName, __LINE__);
+ iSessionObserver.TerminateSession(this, KErrGeneral);
+ }
+ else if (usage == CSuplSettings::ESuplUsageAutomatic)
+ {
if (iNwInitError)
{
iNwInitError = EFalse;
HandleSuplInitErrorL(iNwInitCompletionCode);
}
else
- {
- if (iRoaming)
- HandleRoamingCheckCompleteL(KErrNone, EFalse);
- else
- {
- iEtelRoamingCheck = ETrue;
- iProtocolManager.CheckForRoaming();
- }
-
- }
-
+ {
+ iTrace->Trace(_L("CheckForSuplUsageL, Initializing"), KTraceFileName, __LINE__);
+ InitializeL(iRequestID);
+ }
+ }
+
+ else if (usage == CSuplSettings::ESuplUsageHomeAutomatic || usage == CSuplSettings::ESuplUsageAlwaysAsk)
+ {
+ if (iRoaming)
+ HandleRoamingCheckCompleteL(KErrNone, EFalse);
+ else
+ {
+ iEtelRoamingCheck = ETrue;
+ iProtocolManager.CheckForRoaming();
+ }
+ }
+ }
+ else
+ InitializeL(iRequestID);
}
@@ -4784,10 +4871,80 @@
{
iUsageHomeNW = aHomeNw;
iConnRequestor->UpdateSLPListForHomeUsage(iUsageHomeNW);
-
-
-
+ CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage();
+
+ if (usage == CSuplSettings::ESuplUsageAlwaysAsk)
+ {
+ TInt err;
+ if (!aHomeNw)
+ {
+ iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__);
+ err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue);
+ }
+ else
+ {
+ iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is not roaming"), KTraceFileName, __LINE__);
+ err = iProtocolManager.LaunchSuplUsageSettingsUI(this, EFalse);
+ }
+
+ if(KErrNone != err && KErrInUse == err)
+ {
+ iTrace->Trace(_L("Dialog in use, setting flag"), KTraceFileName, __LINE__);
+ SetSuplUsageFlag();
+ }
+ if( KErrNone == err && iRequestType == ESUPL_NETWORK )
+ {
+ iTrace->Trace(_L("Network Session , starting timer"), KTraceFileName, __LINE__);
+ COMASuplInit* suplInit = static_cast <COMASuplInit*> (iDecodedAsnMessage);
+ TOMASuplQop qop;
+ TInt retVal = suplInit->Qop(qop);
+ TInt delay;
+ qop.Delay(delay);
+ //if delay is > 7, it is not valid
+ if (delay > 7)
+ delay = 0;
+ if(retVal == KErrNone && delay > 0)
{
+ TReal delayReal;
+ Math::Pow(delayReal, 2, (TReal)delay);
+ delay = (TInt) delayReal;
+ TBuf<128> msg(_L("Delay present in message, value is = "));
+ msg.AppendNum(delay);
+ iTrace->Trace(msg, KTraceFileName, __LINE__);
+ isTimeoutDialogTimerStarted = ETrue;
+ iDialogTimer->StartTimer(delay);
+ }
+ else
+ {
+ if (iSuplInitTimeOut > 0)
+ {
+ TBuf<256> msg(_L("Delay value in CR is"));
+ msg.AppendNum(iSuplInitTimeOut);
+ iTrace->Trace(msg, KTraceFileName, __LINE__);
+ iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond);
+ isTimeoutDialogTimerStarted = ETrue;
+ }
+ else
+ iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__);
+ }
+ iDlgStartTime.HomeTime();
+ }
+ else if (KErrNone != err)
+ {
+ iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__);
+ HandleSuplErrorL(err);
+ }
+
+ }
+ else if (usage == CSuplSettings::ESuplUsageHomeAutomatic)
+ {
+ if (!aHomeNw)
+ {
+ TInt err;
+ //if (!iSuplSettings->IsUIActive() )
+ {
+ iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__);
+ err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue);
if(iSuplMsgType == ESUPL_INIT)
{
@@ -4826,15 +4983,27 @@
}
-
+ if(!iSuplSettings->IsUIActive() && KErrNone != err)
+ {
+ SetSuplUsageFlag();
+ }
+ else
+ {
+ iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__);
+ HandleSuplErrorL(err);
+ }
+ }
+ else
+ {
if (iNwInitError)
{
iNwInitError = EFalse;
HandleSuplInitErrorL(iNwInitCompletionCode);
}
else
- InitializeL(iRequestID);
-
+ InitializeL(iRequestID);
+ }
+ }
}
else
{
@@ -4844,7 +5013,12 @@
TInt COMASuplSession::SuplIpcSessionID()
{
return iIpcSessionId;
- }
+ }
+
+void COMASuplSession::UpdateSuplUsage()
+ {
+ iPrevUsageResult = KErrNone;
+ }
void COMASuplSession::SettingsChanged()
{
@@ -4883,9 +5057,189 @@
iIapNotifier->NotifyIapSettingsChange();
}
}
- }
-
-
+ }
+void COMASuplSession::SetSuplUsageFlag()
+ {
+ iUsageDialog = ETrue;
+ }
+
+void COMASuplSession::ReSetSuplUsageFlag()
+ {
+ iUsageDialog = EFalse;
+ }
+
+TBool COMASuplSession::GetSuplUsageFlag()
+ {
+ return iUsageDialog;
+ }
+
+void COMASuplSession::StartUsageDialogLaunchL()
+ {
+ iTrace->Trace(_L("COMASuplSession::StartUsageDialogLaunchL"), KTraceFileName, __LINE__);
+ ReSetSuplUsageFlag();
+ iTrace->Trace(_L("COMASuplSession::StartUsageDialogLaunchL, flag reset done"), KTraceFileName, __LINE__);
+
+ CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage();
+ if (usage == CSuplSettings::ESuplUsageAlwaysAsk)
+ {
+ TInt err;
+ if (!iUsageHomeNW)
+ {
+ iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__);
+ err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue);
+
+ if(iRequestType == ESUPL_NETWORK && err == KErrNone)
+ {
+ iTrace->Trace(_L("starting Dialog timer "), KTraceFileName, __LINE__);
+
+ COMASuplInit* suplInit = static_cast <COMASuplInit*> (iDecodedAsnMessage);
+ TOMASuplQop qop;
+ TInt retVal = suplInit->Qop(qop);
+ TInt delay;
+ qop.Delay(delay);
+ //if delay is > 7, it is not valid
+ if (delay > 7)
+ delay = 0;
+ if(retVal == KErrNone && delay > 0)
+ {
+ TReal delayReal;
+ Math::Pow(delayReal, 2, (TReal)delay);
+ delay = (TInt) delayReal;
+ TBuf<128> msg(_L("Delay present in message, value is = "));
+ msg.AppendNum(delay);
+ iTrace->Trace(msg, KTraceFileName, __LINE__);
+ isTimeoutDialogTimerStarted = ETrue;
+ iDialogTimer->StartTimer(delay);
+ }
+ else
+ {
+ if (iSuplInitTimeOut > 0)
+ {
+ iTrace->Trace(_L("Delay not present in message"), KTraceFileName, __LINE__);
+ TBuf<256> msg(_L("Delay value in CR is "));
+ msg.AppendNum(iSuplInitTimeOut);
+ iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond);
+ isTimeoutDialogTimerStarted = ETrue;
+ }
+ else
+ iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__);
+ }
+ }
+ }
+ else
+ {
+ iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is not roaming"), KTraceFileName, __LINE__);
+ err = iProtocolManager.LaunchSuplUsageSettingsUI(this, EFalse);
+
+ if( iRequestType == ESUPL_NETWORK && err == KErrNone)
+ {
+ iTrace->Trace(_L("starting Dialog timer "), KTraceFileName, __LINE__);
+
+ COMASuplInit* suplInit = static_cast <COMASuplInit*> (iDecodedAsnMessage);
+ TOMASuplQop qop;
+ TInt retVal = suplInit->Qop(qop);
+ TInt delay;
+ qop.Delay(delay);
+ //if delay is > 7, it is not valid
+ if (delay > 7)
+ delay = 0;
+ if(retVal == KErrNone && delay > 0)
+ {
+ TReal delayReal;
+ Math::Pow(delayReal, 2, (TReal)delay);
+ delay = (TInt) delayReal;
+ TBuf<128> msg(_L("Delay present in message, value is = "));
+ msg.AppendNum(delay);
+ iTrace->Trace(msg, KTraceFileName, __LINE__);
+ isTimeoutDialogTimerStarted = ETrue;
+ iDialogTimer->StartTimer(delay);
+ }
+ else
+ {
+ if (iSuplInitTimeOut > 0)
+ {
+ iTrace->Trace(_L("Delay not present in message"), KTraceFileName, __LINE__);
+ TBuf<256> msg(_L("Delay value in CR is"));
+ msg.AppendNum(iSuplInitTimeOut);
+ iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond);
+ isTimeoutDialogTimerStarted = ETrue;
+ }
+ else
+ iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__);
+ }
+ }
+ }
+
+ if(KErrNone != err)
+ {
+ iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__);
+ HandleSuplErrorL(err);
+ }
+ }
+ else if (usage == CSuplSettings::ESuplUsageHomeAutomatic)
+ {
+ if (!iUsageHomeNW)
+ {
+ TInt err;
+ iTrace->Trace(_L("Invoking LaunchSuplUsageSettingsUI, user is roaming"), KTraceFileName, __LINE__);
+ err = iProtocolManager.LaunchSuplUsageSettingsUI(this, ETrue);
+
+ if(KErrNone != err)
+ {
+ iTrace->Trace(_L("Invoking HandleSuplErrorL"), KTraceFileName, __LINE__);
+ HandleSuplErrorL(err);
+ }
+
+ if(iRequestType == ESUPL_NETWORK && err == KErrNone)
+ {
+ iTrace->Trace(_L("starting Dialog timer "), KTraceFileName, __LINE__);
+
+ COMASuplInit* suplInit = static_cast <COMASuplInit*> (iDecodedAsnMessage);
+ TOMASuplQop qop;
+ TInt retVal = suplInit->Qop(qop);
+ TInt delay;
+ qop.Delay(delay);
+ //if delay is > 7, it is not valid
+ if (delay > 7)
+ delay = 0;
+ if(retVal == KErrNone && delay > 0)
+ {
+ TReal delayReal;
+ Math::Pow(delayReal, 2, (TReal)delay);
+ delay = (TInt) delayReal;
+ TBuf<128> msg(_L("Delay present in message, value is = "));
+ msg.AppendNum(delay);
+ iTrace->Trace(msg, KTraceFileName, __LINE__);
+ isTimeoutDialogTimerStarted = ETrue;
+ iDialogTimer->StartTimer(delay);
+ }
+ else
+ {
+ if (iSuplInitTimeOut > 0)
+ {
+ iTrace->Trace(_L("Delay not present in message"), KTraceFileName, __LINE__);
+ TBuf<256> msg(_L("Delay value in CR is"));
+ msg.AppendNum(iSuplInitTimeOut);
+ iDialogTimer->StartTimer(iSuplInitTimeOut * KSecond);
+ isTimeoutDialogTimerStarted = ETrue;
+ }
+ else
+ iTrace->Trace(_L("Timeout is <= 0"), KTraceFileName, __LINE__);
+ }
+ }
+ }
+ else
+ {
+ if (iNwInitError)
+ {
+ iNwInitError = EFalse;
+ HandleSuplInitErrorL(iNwInitCompletionCode);
+ }
+ else
+ InitializeL(iRequestID);
+ }
+ }
+ }
TBool COMASuplSession::IsEtelNotifySet()
{
@@ -4925,12 +5279,30 @@
iTrace->Trace(_L("Timer Expired for SUPL Dialog"), KTraceFileName, __LINE__);
-
+ if (!iIapDialogShown)
+ iProtocolManager.LaunchSuplDialogTimeoutUI(this);
+ else
+ iIapDlgTimerExpired = ETrue;
}
return;
}
+// -----------------------------------------------------------------------------
+// COMASuplSession::SettingsTimeOutUICompletedL
+//
+// -----------------------------------------------------------------------------
+void COMASuplSession::SettingsTimeOutUICompletedL(TInt aError)
+ {
+
+ TBuf<64> msg;
+ msg.Copy(_L("SUPL Timeout UI completed with ... "));
+ msg.AppendNum(aError);
+ iTrace->Trace(msg,KTraceFileName, __LINE__);
+ iSessionObserver.TerminateSession(this, KErrGeneral);
+ return;
+
+ }
// -----------------------------------------------------------------------------
// COMASuplSession::StoreCurrentCellIDL
@@ -5306,7 +5678,7 @@
//Inform UI that ,trigger session has started...
InsertActiveSessionL();
TInt privacyId;
- TRAP_IGNORE(iNetworkPrivacy->NotifyLocationRequestL(*iSuplReqInfo, privacyId); )
+ iNetworkPrivacy->NotifyLocationRequestL(*iSuplReqInfo, privacyId);
iTrace->Trace(_L(" Calling InsertActiveSessionL"), KTraceFileName, __LINE__);
}
@@ -5343,7 +5715,7 @@
- TRAP_IGNORE(iNetworkPrivacy->NotifyLocationRequestL(*iSuplReqInfo, iRequestorId);)
+ iNetworkPrivacy->NotifyLocationRequestL(*iSuplReqInfo, iRequestorId);
}
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplsettings.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplsettings.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -125,7 +125,27 @@
return iIAPId;
}
+// -----------------------------------------------------------------------------
+// COMASuplSettings::SetSUPLUsage
+// Sets the SUPL Usage
+//
+// -----------------------------------------------------------------------------
+//
+void COMASuplSettings::SetSUPLUsage(CSuplSettings::TSuplSettingsUsage& aSUPLUsage )
+{
+ iSUPLUsage = aSUPLUsage;
+}
+// -----------------------------------------------------------------------------
+// COMASuplSettings::SUPLUsage()
+// Gets the SUPL Usage
+//
+// -----------------------------------------------------------------------------
+//
+CSuplSettings::TSuplSettingsUsage COMASuplSettings::SUPLUsage() const
+ {
+ return iSUPLUsage;
+ }
// -----------------------------------------------------------------------------
--- a/supl/locationomasuplprotocolhandler/rom/omasuplprotocolhandler.iby Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/rom/omasuplprotocolhandler.iby Wed Oct 13 15:01:35 2010 +0300
@@ -64,7 +64,9 @@
ECOM_PLUGIN(epos_omasuplsyncmldm.dll,epos_omasuplsyncmldm.rsc)
#endif // __SYNCML_DM
-
+// Notifier
+ECOM_PLUGIN(epos_omasuplnotifierplugin.dll,epos_omasuplnotifierplugin.rsc)
+file=ABI_DIR\BUILD_DIR\epos_omasuplnotifier.dll SHARED_LIB_DIR\epos_omasuplnotifier.dll
// Storage Db Backup Registration File
data=DATAZ_\private\1027509E\backup_registration.xml \private\1027509E\backup_registration.xml
#endif //__OMA_SUPL_PLUGINS
--- a/supl/locationomasuplprotocolhandler/rom/omasuplprotocolhandler_resource.iby Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/rom/omasuplprotocolhandler_resource.iby Wed Oct 13 15:01:35 2010 +0300
@@ -28,8 +28,8 @@
#ifdef __OMA_SUPL_PLUGINS
-
-
+//Resource file for notifier
+data=DATAZ_\resource\epos_omasuplnotifier.rsc resource\epos_omasuplnotifier.rsc
#endif //__OMA_SUPL_PLUGINS
#endif // OMASUPLPROTOCOLHANDLER_RESOURCE_IBY
Binary file supl/locationsuplfw/conf/suplsettings.confml has changed
Binary file supl/locationsuplfw/conf/suplsettings_102073D6.crml has changed
--- a/supl/locationsuplfw/gateway/inc/epos_csuplipcsubsession.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/gateway/inc/epos_csuplipcsubsession.h Wed Oct 13 15:01:35 2010 +0300
@@ -126,19 +126,11 @@
void HandlePeriodicTriggerSessionWithServernameL(const RMessage2& aMessage);
void HandleStopTriggerringSessionL(const RMessage2& aMessage);
void HandleNotifyTriggerFiredL(const RMessage2& aMessage);
- /*
- * For GeoTagging
- */
- void HandleLocationConversionL(const RMessage2& aMessage);
- void HandleCancelLocationConversionL(const RMessage2& aMessage);
private: // Data
- // Supl session handle.Ownership is with this object
CSuplSessionBase* iSuplSession;
- // Supl session request object.Ownership is with this object
CSuplSessionRequest* iSuplSessnReq;
RMessage2 iMessage;
- // Position buffer.Ownership is with this object
HBufC8* iPositionBuffer;
TInt iReqType;
RSuplTerminalSubSession::TSuplServiceType iSuplService;
--- a/supl/locationsuplfw/gateway/inc/epos_csuplsessionmanager.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/gateway/inc/epos_csuplsessionmanager.h Wed Oct 13 15:01:35 2010 +0300
@@ -25,7 +25,6 @@
#include <lbspositioninfo.h>
#include <epos_suplterminal.h>
#include <epos_suplterminaltrigger.h>
-#include <epos_suplgeocellinfo.h>
#include "epos_csuplecomeventwatcher.h"
#include "epos_csuplsessionretryq.h"
#include "epos_csuplcommunicationmanager.h"
@@ -96,12 +95,6 @@
// from MSuplConnectionMonitor
void ConnectionOpened();
void ConnectionClosed();
-
- void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
- TGeoCellInfo& aCellInfo,
- TRequestStatus& aStatus
- );
- void CancelLocationConversionRequest(CSuplSessionBase *aSessn);
private:
--- a/supl/locationsuplfw/gateway/inc/epos_csuplsessionrequest.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/gateway/inc/epos_csuplsessionrequest.h Wed Oct 13 15:01:35 2010 +0300
@@ -27,7 +27,6 @@
#include <lbspositioninfo.h>
#include <epos_suplterminalqop.h>
#include <epos_suplterminaltrigger.h>
-#include "epos_suplgeocellinfo.h"
// CONSTANT DECLARATIONS
@@ -102,10 +101,6 @@
void CancelTriggerringRequest();
void ProtocolHUnloaded();
-
- void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,TGeoCellInfo& aCellInfo );
-
- void CancelLocationConversionRequest();
void ReIssueRequestL();
protected: // From CActive
@@ -139,9 +134,7 @@
ESuplStopTriggerRequest,
ESuplTriggerFiredNotifyRequest,
ESuplWaitingToRetrySession,
- ESuplRetryingSession,
- ESuplLocationConversionRequest,
- ESuplCancelLocationConversionRequest
+ ESuplRetryingSession
};
TSuplRequestStage iRequestPhase;
--- a/supl/locationsuplfw/gateway/src/epos_csuplipcsession.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/gateway/src/epos_csuplipcsession.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -118,11 +118,7 @@
TInt dataSize = aMessage.GetDesLength(0);
if(dataSize>0)
{
- TRAPD(err,iSuplServer.HandleNewNetSessionL(iSessionManager,aMessage));
- if(err != KErrNone)
- {
- RequestComplete(aMessage,err);
- }
+ iSuplServer.HandleNewNetSessionL(iSessionManager,aMessage);
}
else
{
--- a/supl/locationsuplfw/gateway/src/epos_csuplipcsubsession.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/gateway/src/epos_csuplipcsubsession.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -34,8 +34,6 @@
#include "epos_csuplsettings.h"
#include "epos_csuplsettingsinternal.h"
#include "epos_csuplsettingparams.h"
-#include "epos_suplgeocellinfo.h"
-
// CONSTANTS
//#ifdef _DEBUG
@@ -228,19 +226,6 @@
HandleNotifyTriggerFiredL(aMessage);
break;
}
- case ESuplTerminalSubssnLocationConversion:
- {
- iMessage=aMessage;
- iReqType = ESuplTerminalSubssnLocationConversion;
- HandleLocationConversionL(aMessage);
- break;
- }
-
- case ESuplTerminalSubssnCancelLocationConversion:
- {
- HandleCancelLocationConversionL(aMessage);
- break;
- }
default:
User::Leave(KErrNotSupported);
}
@@ -743,53 +728,5 @@
CleanupStack::Pop(fireInfoBuf);
}
-
-// ---------------------------------------------------------
-// CSuplIPCSubSession::HandleLocationConversionL
-//
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSuplIPCSubSession::HandleLocationConversionL(const RMessage2& aMessage)
- {
- DEBUG_TRACE("CSuplIPCSubSession::HandleLocationConversionL", __LINE__)
-
- if (iSuplSessnReq->IsActive())
- {
- SuplGlobal::RequestComplete(aMessage, KErrAlreadyExists);
- }
-
- if(iReqType==ESuplTerminalSubssnLocationConversion)
- {
- HBufC8* cellBuf = SuplGlobal::CopyClientBuffer8LC(aMessage,0);
-
- TGeoCellInfo& cellInfo = reinterpret_cast
- <TGeoCellInfo&>(const_cast<TUint8&>(*cellBuf->Ptr()));
-
- iSuplSessnReq->MakeLocationConversionRequestL( iSuplSession,cellInfo );
-
- CleanupStack::PopAndDestroy(cellBuf);
- }
-
- }
-
-// ---------------------------------------------------------
-// CSuplIPCSubSession::HandleCancelLocationConversionL
-//
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSuplIPCSubSession::HandleCancelLocationConversionL(const RMessage2& aMessage)
- {
- DEBUG_TRACE("CSuplIPCSubSession::HandleCancelLocationConversionL", __LINE__)
-
- if (!iSuplSessnReq->IsActive()||(iReqType!=ESuplTerminalSubssnLocationConversion))
- {
- User::Leave(KErrNotFound);
- }
- iSuplSessnReq->CancelLocationConversionRequest();
- SuplGlobal::RequestComplete(aMessage, KErrNone);
- CompleteRunSession(KErrCancel);
- }
// End of File
--- a/supl/locationsuplfw/gateway/src/epos_csuplserver.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/gateway/src/epos_csuplserver.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -142,8 +142,8 @@
// Settings
TInt keyValue;
TInt err = KErrNone;
- CRepository* repository = NULL;
- TRAP(err, repository = CRepository::NewL(KCRUidSuplConfiguration));
+
+ CRepository* repository = CRepository::NewL(KCRUidSuplConfiguration);
CleanupStack::PushL(repository);
if (err != KErrNone)
@@ -264,7 +264,7 @@
}
//if secure id is not equal to KSuplWapSecureId or KSuplWapSecureId, then perform capability check
- if ((aMessage.SecureId() != KSuplWapSecureId && aMessage.SecureId() != KNetworkGatewaySID && aMessage.SecureId() != 0x102869DF))
+ if ((aMessage.SecureId() != KSuplWapSecureId && aMessage.SecureId() != KNetworkGatewaySID))
{
if (!aMessage.HasCapability(ECapabilityCommDD))
{
@@ -322,11 +322,8 @@
static _LIT_SECURITY_POLICY_S0(allowSuplWapPolicy, KSuplWapSecureId);
TBool isSuplWap = allowSuplWapPolicy().CheckPolicy(aMessage);
- static _LIT_SECURITY_POLICY_S0(allowlocationserverPolicy, 0x102869DF);
- TBool islocationserver = allowlocationserverPolicy().CheckPolicy(aMessage);
-
- //Check if the request was made by one of the allowed processes else check for required capability
- if (!isNetworkGateway && !isSuplWap && !islocationserver)
+ //Check if the request was made by one of the allowed processes else check for required capability
+ if (!isNetworkGateway && !isSuplWap )
{
if (!aMessage.HasCapability(ECapabilityCommDD))
{
--- a/supl/locationsuplfw/gateway/src/epos_csuplsessionmanager.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/gateway/src/epos_csuplsessionmanager.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -30,7 +30,6 @@
#include "epos_sessionmanagerlogging.h"
#include "epos_csuplsessionmanager.h"
#include "epos_csuplglobal.h"
-#include "epos_suplgeocellinfo.h"
//#ifdef _DEBUG
_LIT(KTraceFileName, "SUPL_GW::epos_csuplsessionmanager.cpp");
@@ -489,53 +488,5 @@
{
iSessionRetryQ->RemoveFromQueueL(aSessionRequest);
}
-
-// ---------------------------------------------------------
-// CSuplSessionManager::MakeLocationConversionRequestL
-//
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSuplSessionManager::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
- TGeoCellInfo& aCellInfo,
- TRequestStatus& aStatus
- )
- {
- DEBUG_TRACE("CSuplSessionManager::MakeLocationConversionRequestL", __LINE__)
- TInt err = KErrNone;
- if(iProtocolMgr && aSuplSessn)
- {
- DEBUG_TRACE("CSuplSessionManager::MakeLocationConversionRequestL if condition true", __LINE__)
- TRAP(err,iProtocolMgr->MakeLocationConversionRequestL(aSuplSessn,aCellInfo,aStatus));
- DEBUG_TRACE("CSuplSessionManager::MakeLocationConversionRequestL err", __LINE__)
- if(err!=KErrNone)
- {
- DEBUG_TRACE("CSuplSessionManager::MakeLocationConversionRequestL err not KErrNone", __LINE__)
- TRequestStatus *status = &aStatus;
- User::RequestComplete(status,KErrNotReady);
- }
- }
- else
- {
- TRequestStatus *status = &aStatus;
- User::RequestComplete(status,KErrNotReady);
- }
- }
-
-// ---------------------------------------------------------
-// CSuplSessionManager::CancelLocationConversionRequest
-//
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSuplSessionManager::CancelLocationConversionRequest(CSuplSessionBase *aSessn)
- {
- DEBUG_TRACE("CSuplSessionManager::CancelLocationConversionRequest", __LINE__)
- if(iProtocolMgr && aSessn)
- iProtocolMgr->CancelLocationConversionRequest(aSessn);
- }
-
-
-
// End of File
--- a/supl/locationsuplfw/gateway/src/epos_csuplsessionrequest.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/gateway/src/epos_csuplsessionrequest.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -97,7 +97,7 @@
CSuplSessionRequest::~CSuplSessionRequest()
{
DEBUG_TRACE("CSuplSessionRequest::~CSuplSessionRequest", __LINE__)
- //iSessnMgr.RemoveFromQueueForReIssueRequest(*this);
+ iSessnMgr.RemoveFromQueueForReIssueRequest(*this);
if (iParamExtendedFallback)
{
@@ -317,17 +317,6 @@
iNetObserver->CompleteForwardMessageL(iHandle);
break;
}
-
- case ESuplLocationConversionRequest:
- case ESuplCancelLocationConversionRequest:
- {
- iRequestPhase = ESuplReqInactive;
- iObserver->CompleteRunSession(err);
- break;
- }
-
-
-
default :
DebugPanic(EPosSuplServerPanicRequestInconsistency);
@@ -500,38 +489,8 @@
{
DEBUG_TRACE("CSuplSessionRequest::CancelTriggerringRequest", __LINE__)
iRequestPhase = ESuplStopTriggerRequest;
- iSessnMgr.CancelTriggerringSession(iSuplSessn);
- //SetActive();
- }
-
-// ---------------------------------------------------------
-// CSuplSessionRequest::MakeLocationConversionRequestL
-//
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSuplSessionRequest::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
- TGeoCellInfo& aCellInfo )
- {
- DEBUG_TRACE("CSuplSessionRequest::MakeLocationConversionRequestL", __LINE__)
- iRequestPhase = ESuplLocationConversionRequest;
- iStatus = KRequestPending;
- iSessnMgr.MakeLocationConversionRequestL(aSuplSessn,aCellInfo,iStatus );
- SetActive();
- }
-
-
-// ---------------------------------------------------------
-// CSuplSessionRequest::CancelLocationConversionRequest
-//
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSuplSessionRequest::CancelLocationConversionRequest()
- {
- DEBUG_TRACE("CSuplSessionRequest::CancelLocationConversionRequest", __LINE__)
- iRequestPhase = ESuplCancelLocationConversionRequest;
- iSessnMgr.CancelLocationConversionRequest(iSuplSessn);
+ iSessnMgr.CancelTriggerringSession(iSuplSessn);
+ //SetActive();
}
// End of File
--- a/supl/locationsuplfw/protocolhandlerapi/bwins/epossuplprotocolhandlerpluginu.def Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/protocolhandlerapi/bwins/epossuplprotocolhandlerpluginu.def Wed Oct 13 15:01:35 2010 +0300
@@ -1,27 +1,26 @@
EXPORTS
- ?Connect@CSuplConnection@@QAEXAAVTRequestStatus@@HH@Z @ 1 NONAME ; void CSuplConnection::Connect(class TRequestStatus &, int, int)
- ?ConstructL@CSUPLProtocolManagerBase@@UAEXABVTUid@@@Z @ 2 NONAME ; void CSUPLProtocolManagerBase::ConstructL(class TUid const &)
- ??0CSUPLProtocolManagerBase@@QAE@XZ @ 3 NONAME ; CSUPLProtocolManagerBase::CSUPLProtocolManagerBase(void)
- ?CancelListenToMessages@CSuplConnection@@QAEXXZ @ 4 NONAME ; void CSuplConnection::CancelListenToMessages(void)
- ?ImplementationUid@CSUPLProtocolManagerBase@@QBE?AVTUid@@XZ @ 5 NONAME ; class TUid CSUPLProtocolManagerBase::ImplementationUid(void) const
- ?CancelSend@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 6 NONAME ; void CSuplConnection::CancelSend(class TRequestStatus &)
- ?ListenToMessages@CSuplConnection@@QAEHXZ @ 7 NONAME ; int CSuplConnection::ListenToMessages(void)
- ?GetSUPLMessageVersionL@CSUPLProtocolManagerBase@@UAEHAAHABVTDesC8@@@Z @ 8 NONAME ; int CSUPLProtocolManagerBase::GetSUPLMessageVersionL(int &, class TDesC8 const &)
- ?Version@CSUPLProtocolManagerBase@@QBEHXZ @ 9 NONAME ; int CSUPLProtocolManagerBase::Version(void) const
- ??1CSuplCommunicationManager@@UAE@XZ @ 10 NONAME ; CSuplCommunicationManager::~CSuplCommunicationManager(void)
- ?Connect@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 11 NONAME ; void CSuplConnection::Connect(class TRequestStatus &)
- ?GetPortNumberUsed@CSuplConnection@@QAEHXZ @ 12 NONAME ; int CSuplConnection::GetPortNumberUsed(void)
- ?Initialize@CSuplCommunicationManager@@QAEHXZ @ 13 NONAME ; int CSuplCommunicationManager::Initialize(void)
- ?GetLocalIPAddress@CSuplConnection@@QAEHAAVTInetAddr@@@Z @ 14 NONAME ; int CSuplConnection::GetLocalIPAddress(class TInetAddr &)
- ?NewL@CSUPLProtocolManagerBase@@SAPAV1@ABVTDesC8@@@Z @ 15 NONAME ; class CSUPLProtocolManagerBase * CSUPLProtocolManagerBase::NewL(class TDesC8 const &)
- ?Send@CSuplConnection@@QAEXABVTDesC8@@AAVTRequestStatus@@@Z @ 16 NONAME ; void CSuplConnection::Send(class TDesC8 const &, class TRequestStatus &)
- ?CreateConnectionL@CSuplCommunicationManager@@QAEPAVCSuplConnection@@ABVTDesC16@@HHIH@Z @ 17 NONAME ; class CSuplConnection * CSuplCommunicationManager::CreateConnectionL(class TDesC16 const &, int, int, unsigned int, int)
- ?NewL@CSuplCommunicationManager@@SAPAV1@AAVMSuplConnectionMonitor@@@Z @ 18 NONAME ; class CSuplCommunicationManager * CSuplCommunicationManager::NewL(class MSuplConnectionMonitor &)
- ?CloseConnection@CSuplConnection@@QAEXXZ @ 19 NONAME ; void CSuplConnection::CloseConnection(void)
- ?CancelConnect@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 20 NONAME ; void CSuplConnection::CancelConnect(class TRequestStatus &)
- ?DestroyConnection@CSuplCommunicationManager@@QAEHPAVCSuplConnection@@@Z @ 21 NONAME ; int CSuplCommunicationManager::DestroyConnection(class CSuplConnection *)
- ?NewL@CSUPLProtocolManagerBase@@SAPAV1@ABVTUid@@@Z @ 22 NONAME ; class CSUPLProtocolManagerBase * CSUPLProtocolManagerBase::NewL(class TUid const &)
- ?SetPacketReceiver@CSuplCommunicationManager@@QAEXPAVMSuplPacketReceiver@@@Z @ 23 NONAME ; void CSuplCommunicationManager::SetPacketReceiver(class MSuplPacketReceiver *)
- ??1CSUPLProtocolManagerBase@@UAE@XZ @ 24 NONAME ; CSUPLProtocolManagerBase::~CSUPLProtocolManagerBase(void)
- ?CreateConnectionL@CSuplCommunicationManager@@QAEPAVCSuplConnection@@ABVTDesC16@@IH@Z @ 25 NONAME ; class CSuplConnection * CSuplCommunicationManager::CreateConnectionL(class TDesC16 const &, unsigned int, int)
+ ?ConstructL@CSUPLProtocolManagerBase@@UAEXABVTUid@@@Z @ 1 NONAME ; void CSUPLProtocolManagerBase::ConstructL(class TUid const &)
+ ??0CSUPLProtocolManagerBase@@QAE@XZ @ 2 NONAME ; CSUPLProtocolManagerBase::CSUPLProtocolManagerBase(void)
+ ?CancelListenToMessages@CSuplConnection@@QAEXXZ @ 3 NONAME ; void CSuplConnection::CancelListenToMessages(void)
+ ?ImplementationUid@CSUPLProtocolManagerBase@@QBE?AVTUid@@XZ @ 4 NONAME ; class TUid CSUPLProtocolManagerBase::ImplementationUid(void) const
+ ?CancelSend@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 5 NONAME ; void CSuplConnection::CancelSend(class TRequestStatus &)
+ ?ListenToMessages@CSuplConnection@@QAEHXZ @ 6 NONAME ; int CSuplConnection::ListenToMessages(void)
+ ?GetSUPLMessageVersionL@CSUPLProtocolManagerBase@@UAEHAAHABVTDesC8@@@Z @ 7 NONAME ; int CSUPLProtocolManagerBase::GetSUPLMessageVersionL(int &, class TDesC8 const &)
+ ?Version@CSUPLProtocolManagerBase@@QBEHXZ @ 8 NONAME ; int CSUPLProtocolManagerBase::Version(void) const
+ ??1CSuplCommunicationManager@@UAE@XZ @ 9 NONAME ; CSuplCommunicationManager::~CSuplCommunicationManager(void)
+ ?Connect@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 10 NONAME ; void CSuplConnection::Connect(class TRequestStatus &)
+ ?GetPortNumberUsed@CSuplConnection@@QAEHXZ @ 11 NONAME ; int CSuplConnection::GetPortNumberUsed(void)
+ ?Initialize@CSuplCommunicationManager@@QAEHXZ @ 12 NONAME ; int CSuplCommunicationManager::Initialize(void)
+ ?GetLocalIPAddress@CSuplConnection@@QAEHAAVTInetAddr@@@Z @ 13 NONAME ; int CSuplConnection::GetLocalIPAddress(class TInetAddr &)
+ ?NewL@CSUPLProtocolManagerBase@@SAPAV1@ABVTDesC8@@@Z @ 14 NONAME ; class CSUPLProtocolManagerBase * CSUPLProtocolManagerBase::NewL(class TDesC8 const &)
+ ?Send@CSuplConnection@@QAEXABVTDesC8@@AAVTRequestStatus@@@Z @ 15 NONAME ; void CSuplConnection::Send(class TDesC8 const &, class TRequestStatus &)
+ ?CreateConnectionL@CSuplCommunicationManager@@QAEPAVCSuplConnection@@ABVTDesC16@@HHIH@Z @ 16 NONAME ; class CSuplConnection * CSuplCommunicationManager::CreateConnectionL(class TDesC16 const &, int, int, unsigned int, int)
+ ?NewL@CSuplCommunicationManager@@SAPAV1@AAVMSuplConnectionMonitor@@@Z @ 17 NONAME ; class CSuplCommunicationManager * CSuplCommunicationManager::NewL(class MSuplConnectionMonitor &)
+ ?CloseConnection@CSuplConnection@@QAEXXZ @ 18 NONAME ; void CSuplConnection::CloseConnection(void)
+ ?CancelConnect@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 19 NONAME ; void CSuplConnection::CancelConnect(class TRequestStatus &)
+ ?DestroyConnection@CSuplCommunicationManager@@QAEHPAVCSuplConnection@@@Z @ 20 NONAME ; int CSuplCommunicationManager::DestroyConnection(class CSuplConnection *)
+ ?NewL@CSUPLProtocolManagerBase@@SAPAV1@ABVTUid@@@Z @ 21 NONAME ; class CSUPLProtocolManagerBase * CSUPLProtocolManagerBase::NewL(class TUid const &)
+ ?SetPacketReceiver@CSuplCommunicationManager@@QAEXPAVMSuplPacketReceiver@@@Z @ 22 NONAME ; void CSuplCommunicationManager::SetPacketReceiver(class MSuplPacketReceiver *)
+ ??1CSUPLProtocolManagerBase@@UAE@XZ @ 23 NONAME ; CSUPLProtocolManagerBase::~CSUPLProtocolManagerBase(void)
+ ?CreateConnectionL@CSuplCommunicationManager@@QAEPAVCSuplConnection@@ABVTDesC16@@IH@Z @ 24 NONAME ; class CSuplConnection * CSuplCommunicationManager::CreateConnectionL(class TDesC16 const &, unsigned int, int)
--- a/supl/locationsuplfw/protocolhandlerapi/eabi/epossuplprotocolhandlerpluginu.def Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/protocolhandlerapi/eabi/epossuplprotocolhandlerpluginu.def Wed Oct 13 15:01:35 2010 +0300
@@ -8,32 +8,31 @@
_ZN15CSuplConnection22CancelListenToMessagesEv @ 7 NONAME
_ZN15CSuplConnection4SendERK6TDesC8R14TRequestStatus @ 8 NONAME
_ZN15CSuplConnection7ConnectER14TRequestStatus @ 9 NONAME
- _ZN15CSuplConnection7ConnectER14TRequestStatusii @ 10 NONAME
- _ZN24CSUPLProtocolManagerBase10ConstructLERK4TUid @ 11 NONAME
- _ZN24CSUPLProtocolManagerBase22GetSUPLMessageVersionLERiRK6TDesC8 @ 12 NONAME
- _ZN24CSUPLProtocolManagerBase4NewLERK4TUid @ 13 NONAME
- _ZN24CSUPLProtocolManagerBase4NewLERK6TDesC8 @ 14 NONAME
- _ZN24CSUPLProtocolManagerBaseC2Ev @ 15 NONAME
- _ZN24CSUPLProtocolManagerBaseD0Ev @ 16 NONAME
- _ZN24CSUPLProtocolManagerBaseD1Ev @ 17 NONAME
- _ZN24CSUPLProtocolManagerBaseD2Ev @ 18 NONAME
- _ZN25CSuplCommunicationManager10InitializeEv @ 19 NONAME
- _ZN25CSuplCommunicationManager17CreateConnectionLERK7TDesC16iiji @ 20 NONAME
- _ZN25CSuplCommunicationManager17CreateConnectionLERK7TDesC16ji @ 21 NONAME
- _ZN25CSuplCommunicationManager17DestroyConnectionEP15CSuplConnection @ 22 NONAME
- _ZN25CSuplCommunicationManager17SetPacketReceiverEP19MSuplPacketReceiver @ 23 NONAME
- _ZN25CSuplCommunicationManager4NewLER22MSuplConnectionMonitor @ 24 NONAME
- _ZN25CSuplCommunicationManagerD0Ev @ 25 NONAME
- _ZN25CSuplCommunicationManagerD1Ev @ 26 NONAME
- _ZN25CSuplCommunicationManagerD2Ev @ 27 NONAME
- _ZNK24CSUPLProtocolManagerBase17ImplementationUidEv @ 28 NONAME
- _ZNK24CSUPLProtocolManagerBase7VersionEv @ 29 NONAME
- _ZTI15CSuplConnection @ 30 NONAME
- _ZTI17CSuplSocketReader @ 31 NONAME
- _ZTI24CSUPLProtocolManagerBase @ 32 NONAME
- _ZTI25CSuplCommunicationManager @ 33 NONAME
- _ZTV15CSuplConnection @ 34 NONAME
- _ZTV17CSuplSocketReader @ 35 NONAME
- _ZTV24CSUPLProtocolManagerBase @ 36 NONAME
- _ZTV25CSuplCommunicationManager @ 37 NONAME
+ _ZN24CSUPLProtocolManagerBase10ConstructLERK4TUid @ 10 NONAME
+ _ZN24CSUPLProtocolManagerBase22GetSUPLMessageVersionLERiRK6TDesC8 @ 11 NONAME
+ _ZN24CSUPLProtocolManagerBase4NewLERK4TUid @ 12 NONAME
+ _ZN24CSUPLProtocolManagerBase4NewLERK6TDesC8 @ 13 NONAME
+ _ZN24CSUPLProtocolManagerBaseC2Ev @ 14 NONAME
+ _ZN24CSUPLProtocolManagerBaseD0Ev @ 15 NONAME
+ _ZN24CSUPLProtocolManagerBaseD1Ev @ 16 NONAME
+ _ZN24CSUPLProtocolManagerBaseD2Ev @ 17 NONAME
+ _ZN25CSuplCommunicationManager10InitializeEv @ 18 NONAME
+ _ZN25CSuplCommunicationManager17CreateConnectionLERK7TDesC16iiji @ 19 NONAME
+ _ZN25CSuplCommunicationManager17CreateConnectionLERK7TDesC16ji @ 20 NONAME
+ _ZN25CSuplCommunicationManager17DestroyConnectionEP15CSuplConnection @ 21 NONAME
+ _ZN25CSuplCommunicationManager17SetPacketReceiverEP19MSuplPacketReceiver @ 22 NONAME
+ _ZN25CSuplCommunicationManager4NewLER22MSuplConnectionMonitor @ 23 NONAME
+ _ZN25CSuplCommunicationManagerD0Ev @ 24 NONAME
+ _ZN25CSuplCommunicationManagerD1Ev @ 25 NONAME
+ _ZN25CSuplCommunicationManagerD2Ev @ 26 NONAME
+ _ZNK24CSUPLProtocolManagerBase17ImplementationUidEv @ 27 NONAME
+ _ZNK24CSUPLProtocolManagerBase7VersionEv @ 28 NONAME
+ _ZTI15CSuplConnection @ 29 NONAME
+ _ZTI17CSuplSocketReader @ 30 NONAME
+ _ZTI24CSUPLProtocolManagerBase @ 31 NONAME
+ _ZTI25CSuplCommunicationManager @ 32 NONAME
+ _ZTV15CSuplConnection @ 33 NONAME
+ _ZTV17CSuplSocketReader @ 34 NONAME
+ _ZTV24CSUPLProtocolManagerBase @ 35 NONAME
+ _ZTV25CSuplCommunicationManager @ 36 NONAME
--- a/supl/locationsuplfw/protocolhandlerapi/group/epos_suplprotocolhandlerplugin.mmp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/protocolhandlerapi/group/epos_suplprotocolhandlerplugin.mmp Wed Oct 13 15:01:35 2010 +0300
@@ -51,7 +51,7 @@
LIBRARY insock.lib
LIBRARY securesocket.lib
LIBRARY commdb.lib
-LIBRARY centralrepository.lib extendedconnpref.lib netmeta.lib /*extendedconnpref.lib netmeta.lib Related to custom preference Api's(OCC).*/
+LIBRARY centralrepository.lib
LIBRARY flogger.lib
/* LIBRARY gba.lib */
--- a/supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplconnection.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplconnection.h Wed Oct 13 15:01:35 2010 +0300
@@ -88,16 +88,6 @@
* @return void *
*/
IMPORT_C void Connect(TRequestStatus &aStatus);
-
- /**
- * A method that makes Socket Connection.
- * @since Series 60 3.1
- * @return None
- * @param aPrompt used to show connection prompt using OCC Api's.
- * @param aWlanOnly used to differentiate connection for GPRS and WLAN using OCC Api's
- */
- IMPORT_C void Connect(TRequestStatus &aStatus,TBool aPrompt,TBool aWlanOnly);
-
IMPORT_C void CloseConnection();
@@ -392,7 +382,7 @@
TBool iPskTLSUsage;
TBool iStartedListen;
-
+
TBool iConnectStarted;
TBool iSendInProgress;
@@ -405,14 +395,6 @@
// Number of client connected
TInt iConnectClients;
- TBool iPrompt;
-
- TBool iWlanOnly;
-
-
-
-
-
};
#endif // C_CSUPLCONNECTION_H
--- a/supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplprotocolmanagerbase.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplprotocolmanagerbase.h Wed Oct 13 15:01:35 2010 +0300
@@ -29,7 +29,6 @@
//Forword Declarations
class CSuplSessionBase;
class CSuplCommunicationManager;
-class TGeoCellInfo;
/**
@@ -375,35 +374,6 @@
*/
virtual TInt GetSUPLMessageVersionL(TInt& aMajorVersion, const TDesC8& aReceivedMessage);
- /**
- * Function: MakeLocationConversionRequestL
- *
- * @Description: Makes Location conversion request
- *
- * @Param: aSuplSessn,session object on which processing will start
- *
- * @Param: aCellInfo,cell information which needs to be converted to geo-coordinates
- *
- * @Param: aStatus, On return, the status of the request
- * @Returns: returns None
- */
-
- virtual void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
- TGeoCellInfo& aCellInfo,
- TRequestStatus& aStatus ) = 0;
-
-
- /**
- * Function: CancelLocationConversionRequest
- *
- * @Description: Cancels the conversion Request
- *
- * @Param: Session Object
- *
- * @Returns: None
- */
-
- virtual void CancelLocationConversionRequest(CSuplSessionBase* aSuplSession) = 0;
--- a/supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -23,7 +23,7 @@
#endif
#include <commdbconnpref.h>
#include <centralrepository.h>
-#include <extendedconnpref.h> //For OCC
+
#include "epos_csuplserverprivatecrkeys.h"
#include "epos_csuplconnection.h"
#include "epos_csuplsocketreader.h"
@@ -125,7 +125,7 @@
iState(ENotConnected), iPacket(0, 0), iVariantEnabled(ETrue),
iPskTLSUsage(EFalse), iStartedListen(EFalse), iConnectStarted(
EFalse), iSendInProgress(EFalse), iFirstPkt(EFalse),
- iListenCount(0), iPrompt(EFalse), iWlanOnly(EFalse)
+ iListenCount(0)
{
iHostAddress.Zero();
CActiveScheduler::Add(this);
@@ -319,10 +319,8 @@
// Cancel Any outstanding request
Cancel();
- if (iTrace)
- iTrace->Trace(_L(
- "CSuplConnection::Destructor...Deleting Socket Reader"),
- KTraceFileName, __LINE__);
+ iTrace->Trace(_L("CSuplConnection::Destructor...Deleting Socket Reader"),
+ KTraceFileName, __LINE__);
//Delete the Socket Reader
delete iSocketReader;
@@ -969,12 +967,7 @@
{
aStatus = KRequestPending;
TRequestStatus *reqStatus = &aStatus;
- TInt error = iConnArray.Append(reqStatus);
- if (error != KErrNone)
- {
- User::RequestComplete(reqStatus, error);
- return;
- }
+ iConnArray.Append(reqStatus);
}
if (!iConnectStarted)
@@ -990,40 +983,14 @@
iConnectStarted = ETrue;
#ifndef __WINS__
- TExtendedConnPref OCCPrefs;
- TConnPrefList prefList;
-
- OCCPrefs.SetForcedRoaming(EFalse); //do not switch networks during an ongoing connection
- OCCPrefs.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourDefault);
-
- if(iIAPId != -1) //if a IAP was configured
-
- {
- iTrace->Trace(_L("CSuplConnection::Connect : IAP configured"), KTraceFileName, __LINE__);
- OCCPrefs.SetIapId(iIAPId);
- // since IAP Id is set SNAP purpose should not be set - set to unknown
- OCCPrefs.SetSnapPurpose(CMManager::ESnapPurposeUnknown);
- OCCPrefs.SetBearerSet(TExtendedConnPref::EExtendedConnBearerUnknown);
- }
- else
- {
- OCCPrefs.SetSnapPurpose(CMManager::ESnapPurposeInternet);
- //WLAN and Cellular Networks allowed for connection
- OCCPrefs.SetBearerSet(TExtendedConnPref::EExtendedConnBearerWLAN | TExtendedConnPref::EExtendedConnBearerCellular);
-
- //if SNAP purpose is set IAP Id should be zero - zero by default not explicitly set
- iTrace->Trace(_L("CSuplConnection::Connect : IAP not configured"), KTraceFileName, __LINE__);
- }
-
- TRAP_IGNORE(prefList.AppendL(&OCCPrefs));
+ TCommDbConnPref prefs;
+ prefs.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
+ prefs.SetDirection(ECommDbConnectionDirectionOutgoing);
+ prefs.SetIapId(iIAPId);
TInt ret = iConnection.Open(iSocketServ);
- if(ret != KErrNone)
- iTrace->Trace(_L("RConnection Open returned error"), KTraceFileName, __LINE__);
-
- iTrace->Trace(_L("RConnection Start Called, State is ERetriveIAP"), KTraceFileName, __LINE__);
// Start an Outgoing Connection with overrides
- iConnection.Start(prefList,iStatus);
+ iConnection.Start(prefs,iStatus);
// Set state to ERetriveIAP
iState = ERetriveIAP;
SetActive();
@@ -1043,111 +1010,6 @@
}
// -----------------------------------------------------------------------------
-// CSuplConnection::Connect
-// Makes a secure connection to Network
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-
-EXPORT_C void CSuplConnection::Connect(TRequestStatus &aStatus,
- TBool aPrompt, TBool aWlanOnly)
- {
-
- // Log
- iTrace->Trace(_L("CSuplConnection::Connect"), KTraceFileName, __LINE__);
- iPrompt = aPrompt;
- iWlanOnly = aWlanOnly;
-
- aStatus = KRequestPending;
- TRequestStatus *reqStatus = &aStatus;
-
- if (iState == EConnected)
- {
- User::RequestComplete(reqStatus, KErrNone);
- iConnectClients++;
- return;
- }
-
- TInt error = iConnArray.Append(reqStatus);
- if (error != KErrNone)
- {
- User::RequestComplete(reqStatus, error);
- return;
- }
-
- if (!iConnectStarted)
- {
- iTrace->Trace(
- _L("CSuplConnection::Connect : Connection not started"),
- KTraceFileName, __LINE__);
- // Connect only if not already connected
- if (iState == ENotConnected || iState == EFailure)
- {
- iTrace->Trace(_L("CSuplConnection::Connect : ENotConnected"),
- KTraceFileName, __LINE__);
- iConnectStarted = ETrue;
-
-#ifndef __WINS__
-
- iTrace->Trace(_L("CSuplConnection::Connect ExtendedConnPref"), KTraceFileName, __LINE__);
-
- TExtendedConnPref OCCPrefs;
- TConnPrefList prefList;
-
- if(iWlanOnly)
- {
- iTrace->Trace(_L("CSuplConnection::Connect : iWLANOnly used"), KTraceFileName, __LINE__);
- OCCPrefs.SetBearerSet(TExtendedConnPref::EExtendedConnBearerWLAN);
- }
- else
- {
- iTrace->Trace(_L("CSuplConnection::Connect OCC GPRS Connection.."), KTraceFileName, __LINE__);
- OCCPrefs.SetBearerSet(TExtendedConnPref::EExtendedConnBearerCellular);
- }
- OCCPrefs.SetSnapPurpose(CMManager::ESnapPurposeInternet);
-
- if(!iPrompt)
- {
- iTrace->Trace(_L("CSuplConnection::Connect : silent connection"), KTraceFileName, __LINE__);
- OCCPrefs.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourConnSilent);
- }
- else
- {
- iTrace->Trace(_L("CSuplConnection::Connect : Dialog prompt"), KTraceFileName, __LINE__);
- OCCPrefs.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourDefault);
- }
-
- TRAP_IGNORE(prefList.AppendL(&OCCPrefs));
-
- TInt ret = iConnection.Open(iSocketServ);
- if( ret != KErrNone )
- {
- TRequestStatus* statusPtr = &aStatus;
- User::RequestComplete( statusPtr,ret );
- return;
- }
- // Start an Outgoing Connection with overrides
- iConnection.Start(prefList,iStatus);
- // Set state to ERetriveIAP
- iState = ERetriveIAP;
- SetActive();
-
-#else
- ConnectIAP();
-#endif
- }
- }
- else
- iTrace->Trace(
- _L(
- "CSuplConnection::Connect : Conn in progress, request queued"),
- KTraceFileName, __LINE__);
- // Log
- iTrace->Trace(_L("CSuplConnection::Connect:Exit"), KTraceFileName,
- __LINE__);
- }
-
-// -----------------------------------------------------------------------------
// CSuplConnection::CompleteConnectStatus
// Completes the request to cancel connection
// (other items were commented in a header).
@@ -1364,7 +1226,6 @@
SetActive();
}
}
-
// -----------------------------------------------------------------------------
// CSuplConnection::ConnectIAP
// Makes a socket connection to Network
--- a/supl/locationsuplfw/settingsapi/group/bld.inf Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/settingsapi/group/bld.inf Wed Oct 13 15:01:35 2010 +0300
@@ -27,7 +27,6 @@
../inc/epos_csuplsettingsinternal.h |../../../inc/epos_csuplsettingsinternal.h
../inc/epos_csuplsettingextensionparams.h |../../../inc/epos_csuplsettingextensionparams.h
../inc/epos_csuplsettingsinternalconstants.h |../../../inc/epos_csuplsettingsinternalconstants.h
-../inc/epos_csuplsettingsinternalcrkeys.h |../../../inc/epos_csuplsettingsinternalcrkeys.h
PRJ_MMPFILES
epos_suplsettings.mmp
--- a/supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsinternalcrkeys.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsinternalcrkeys.h Wed Oct 13 15:01:35 2010 +0300
@@ -26,12 +26,11 @@
const TUint32 KSuplSettingsFallBack = 0x00000002;
const TUint32 KSuplSettingsFallBackTimer = 0x00000003;
const TUint32 KSuplSettingsIMSI = 0x00000004;
-
+const TUint32 KSuplSettingsUsage = 0x00000005;
const TUint32 KSuplSettingsDBEvent = 0x00000006;
const TUint32 KSuplSettingsDBChangedSLPId = 0x00000007;
const TUint32 KSuplSettigsDBPath = 0x00000008;
const TUint32 KSuplSessionDBEvent = 0x00000009;
const TUint32 KSuplSessionDBChangedSessionId = 0x0000000A;
-const TUint32 KSuplGeoInfoConvServerName = 0x0000000B;
#endif //SUPLSETTINGSINTERNALCRKEYS_H
--- a/supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsnotifier.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsnotifier.h Wed Oct 13 15:01:35 2010 +0300
@@ -107,6 +107,7 @@
TBool iStopObserve;
+ CSuplSettings::TSuplSettingsUsage iUsage;
TInt iFallBackValue;
TInt iFallBackTimerValue;
--- a/supl/locationsuplfw/settingsapi/src/epos_csuplsettings.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/settingsapi/src/epos_csuplsettings.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -235,20 +235,35 @@
//-------------------------------------------------------------------------------------
//CSuplSettings::GetSuplUsage()
//
-//Deprecated Since S60 5.2.
+//This method is used to retrieve SUPL usage from settings storage.
//--------------------------------------------------------------------------------------
-EXPORT_C TInt CSuplSettings::GetSuplUsage(TSuplSettingsUsage& /* aUsage */ ) const
+EXPORT_C TInt CSuplSettings::GetSuplUsage(TSuplSettingsUsage& aUsage) const
{
- return KErrNotSupported;
+ TInt usage, ret;
+ ret = iSettingsEngine->GetSuplUsage(usage);
+
+ if (ret == KErrNone)
+ {
+ aUsage = (TSuplSettingsUsage)usage;
+ return KErrNone;
+ }
+ else
+ return ret;
}
//-------------------------------------------------------------------------------------
//CSuplSettings::SetSuplUsage()
//
-//Deprecated Since S60 5.2.
+//This method is used to change SUPL usage.
//--------------------------------------------------------------------------------------
-EXPORT_C TInt CSuplSettings::SetSuplUsage(const TSuplSettingsUsage /* aUsage */ )
+EXPORT_C TInt CSuplSettings::SetSuplUsage(const TSuplSettingsUsage aUsage)
{
- return KErrNotSupported;
+ TInt usage = aUsage;
+
+ if (usage < CSuplSettings::ESuplUsageAlwaysAsk ||
+ usage > CSuplSettings::ESuplUsageDisabled)
+ return KErrArgument;
+
+ return iSettingsEngine->SetSuplUsage(aUsage);
}
//-------------------------------------------------------------------------------------
//CSuplSettings::AddNewServer()
@@ -259,7 +274,6 @@
{
if(aParamValues == NULL)
return KErrGeneral;
-
return iSettingsEngine->AddNewServer(aParamValues,aSlpId );
}
--- a/supl/locationsuplfw/settingsapi/src/epos_csuplsettingsengine.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/settingsapi/src/epos_csuplsettingsengine.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -274,6 +274,52 @@
return KErrNone;
}
+/*TInt CSuplSettingsEngine::Set(const TDesC& aHslpAddress, const TDesC& aIapName,
+ const TInt aChangedBy)
+ {
+ TInt err;
+
+ err = iRepository->Set(KSuplSettingsHSLPAddress, aHslpAddress);
+ if (err != KErrNone)
+ return err;
+
+ err = iRepository->Set(KSuplSettingsIAP, aIapName);
+ if (err != KErrNone)
+ return err;
+
+ err = iRepository->Set(KSuplSettingsChangedBy, aChangedBy);
+ if (err != KErrNone)
+ return err;
+
+ err = iRepository->Set(KSuplSettingsIMSI, iImsi);
+ if (err != KErrNone)
+ return err;
+
+ return KErrNone;
+ }
+
+
+TInt CSuplSettingsEngine::Get(TDes& aHslpAddress, TDes& aIapName,
+ TDes& aImsi, TInt& aChangedBy)
+ {
+ TInt err;
+
+ err = iRepository->Get(KSuplSettingsHSLPAddress, aHslpAddress);
+ if (err != KErrNone)
+ return err;
+ err = iRepository->Get(KSuplSettingsIAP, aIapName);
+ if (err != KErrNone)
+ return err;
+ err = iRepository->Get(KSuplSettingsIMSI, aImsi);
+ if (err != KErrNone)
+ return err;
+ err = iRepository->Get(KSuplSettingsChangedBy, aChangedBy);
+ if (err != KErrNone)
+ return err;
+
+ return KErrNone;
+ }
+*/
//-------------------------------------------------------------------------------------
//CSuplSettingsEngine::IsInitDone()
//
@@ -401,6 +447,37 @@
return KErrNone;
}
+//-------------------------------------------------------------------------------------
+//CSuplSettingsEngine::GetSuplUsage()
+//
+//This method is used to retrieve SUPL usage from settings storage.
+//--------------------------------------------------------------------------------------
+TInt CSuplSettingsEngine::GetSuplUsage(TInt& aUsage)
+ {
+ TInt err;
+
+ err = iRepository->Get(KSuplSettingsUsage, aUsage);
+ if (err != KErrNone)
+ return err;
+
+ return KErrNone;
+ }
+
+//-------------------------------------------------------------------------------------
+//CSuplSettingsEngine::SetSuplUsage()
+//
+//This method is used to change SUPL usage.
+//--------------------------------------------------------------------------------------
+TInt CSuplSettingsEngine::SetSuplUsage(const TInt aUsage)
+ {
+ TInt err;
+
+ err = iRepository->Set(KSuplSettingsUsage, aUsage);
+ if (err != KErrNone)
+ return err;
+
+ return KErrNone;
+ }
/*
* GetMccLen
--- a/supl/locationsuplfw/settingsapi/src/epos_csuplsettingsnotifier.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/settingsapi/src/epos_csuplsettingsnotifier.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -95,7 +95,15 @@
iObserver.HandleSuplSettingsChangeL(eventType,slpID);
}
else
- {
+ {
+ TInt usage;
+
+ iRepository->Get(KSuplSettingsUsage, usage);
+
+ if (iUsage != usage) //check if there was a change in the Supl usage value in the cen rep
+ iObserver.HandleSuplSettingsChangeL(MSuplSettingsObserver::ESuplSettingsEventSuplUsageChange);
+ else //else check if any of the other config parameters changed
+ {
TInt fallBackValue;
TInt fallBackTimerValue;
TBuf<KMaxStrlen> imsi;
@@ -104,7 +112,7 @@
iRepository->Get(KSuplSettingsIMSI,imsi);
if(fallBackValue != iFallBackValue || fallBackTimerValue != iFallBackTimerValue || imsi.Compare(*iImsi))
iObserver.HandleSuplSettingsChangeL(MSuplSettingsObserver::ESuplSettingsEventCommParameterChange);
-
+ }
}
StartListening();
}
@@ -151,15 +159,15 @@
}
else
{
-
+ TInt usage;
TBuf<KMaxStrlen> imsi;
-
+ iRepository->Get(KSuplSettingsUsage, usage);
iRepository->Get(KSuplSettingsFallBack,iFallBackValue);
iRepository->Get(KSuplSettingsFallBackTimer,iFallBackTimerValue);
iRepository->Get(KSuplSettingsIMSI,imsi);
if(iImsi)
iImsi->Des() = imsi;
-
+ iUsage = (CSuplSettings::TSuplSettingsUsage) usage;
// Request for notification for any field change
iRepository->NotifyRequest(0x00000000, 0x00000000, iStatus);
--- a/supl/locationsuplfw/terminalinitiationapi/bwins/epos_suplterminitiationu.def Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/terminalinitiationapi/bwins/epos_suplterminitiationu.def Wed Oct 13 15:01:35 2010 +0300
@@ -53,7 +53,4 @@
?ConstructL@CSuplSubSessnPtrHolder@@IAEXHH@Z @ 52 NONAME ; void CSuplSubSessnPtrHolder::ConstructL(int, int)
?NewL@CSuplSubSessnPtrHolder@@SAPAV1@HH@Z @ 53 NONAME ; class CSuplSubSessnPtrHolder * CSuplSubSessnPtrHolder::NewL(int, int)
?Connect@RSuplTerminalServer@@QAEHAAVTRequestStatus@@@Z @ 54 NONAME ; int RSuplTerminalServer::Connect(class TRequestStatus &)
- ?CancelLocationConversion@RSuplTerminalInternal@@QAEXXZ @ 55 NONAME ; void RSuplTerminalInternal::CancelLocationConversion(void)
- ??0RSuplTerminalInternal@@QAE@XZ @ 56 NONAME ; RSuplTerminalInternal::RSuplTerminalInternal(void)
- ?ConvertAreaInfoToCoordinates@RSuplTerminalInternal@@QAEXAAVTRequestStatus@@AAUTGeoCellInfo@@@Z @ 57 NONAME ; void RSuplTerminalInternal::ConvertAreaInfoToCoordinates(class TRequestStatus &, struct TGeoCellInfo &)
--- a/supl/locationsuplfw/terminalinitiationapi/eabi/epos_suplterminitiationu.def Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/terminalinitiationapi/eabi/epos_suplterminitiationu.def Wed Oct 13 15:01:35 2010 +0300
@@ -68,8 +68,4 @@
_ZTV22CSuplSubSessnPtrHolder @ 67 NONAME
_ZTV23RSuplTerminalSubSession @ 68 NONAME
_ZN19RSuplTerminalServer7ConnectER14TRequestStatus @ 69 NONAME
- _ZN21RSuplTerminalInternal24CancelLocationConversionEv @ 70 NONAME
- _ZN21RSuplTerminalInternal28ConvertAreaInfoToCoordinatesER14TRequestStatusR12TGeoCellInfo @ 71 NONAME
- _ZN21RSuplTerminalInternalC1Ev @ 72 NONAME
- _ZN21RSuplTerminalInternalC2Ev @ 73 NONAME
--- a/supl/locationsuplfw/terminalinitiationapi/group/bld.inf Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/terminalinitiationapi/group/bld.inf Wed Oct 13 15:01:35 2010 +0300
@@ -23,9 +23,6 @@
PRJ_EXPORTS
../inc/epos_suplparameters.h MW_LAYER_PLATFORM_EXPORT_PATH(epos_suplparameters.h)
-../inc/epos_suplterminalinternal.h |../../../inc/epos_suplterminalinternal.h
-../inc/epos_suplgeocellinfo.h |../../../inc/epos_suplgeocellinfo.h
-
PRJ_MMPFILES
epos_suplterminalapi.mmp
--- a/supl/locationsuplfw/terminalinitiationapi/group/epos_suplterminalapi.mmp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/terminalinitiationapi/group/epos_suplterminalapi.mmp Wed Oct 13 15:01:35 2010 +0300
@@ -33,7 +33,6 @@
SOURCE epos_suplterminalqop.cpp
SOURCE epos_suplterminalparams.cpp
SOURCE epos_suplterminalperiodictrigger.cpp
-SOURCE epos_suplterminalinternal.cpp
USERINCLUDE ../inc
USERINCLUDE ../../../inc
--- a/supl/locationsuplfw/terminalinitiationapi/inc/epos_suplgeocellinfo.h Wed Sep 15 12:40:28 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Data structure to hold cell information for geo tagging purposes.
-*
-*/
-
-/*! \file epos_suplgeocellinfo.h
- \brief Triggering classes
-*/
-
-#ifndef __EPOS_SUPLGEOCELLINFO_H__
-#define __EPOS_SUPLGEOCELLINFO_H__
-
-// ==========================================
-
-/**
- * Cell types
- */
-enum TGeoCellType
- {
- /** GSM Cell. */
- EGeoGsmCell = 0,
- /** WCDMA cell. */
- EGeoWcdmaCell = 1
- };
-
-/**
- * Class defines detailed information for gsm/wcdma cell.
- *
- * @since S60 5.2
- */
-struct TGeoCellInfo
- {
- TInt iMNC;
- TInt iMCC;
- TInt iCid;
- TInt iLac;
- TBool iConnectionPrompt;
- TBool iWlanOnly;
- TGeoCellType iGeoCellType;
- };
-
-#endif //__EPOS_SUPLGEOCELLINFO_H__
--- a/supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalinternal.h Wed Sep 15 12:40:28 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: SUPL Terminal Initiation internal class
-*
-*/
-
-#ifndef __EPOS_SUPLTERMINALINTERNAL_H__
-#define __EPOS_SUPLTERMINALINTERNAL_H__
-
-
-#include <epos_suplterminal.h>
-
-#include "epos_suplgeocellinfo.h"
-
-
-// Forward declarations
-
-/**
- * This class is used to make request to convert area information to geo-coordinates.
- */
-class RSuplTerminalInternal : public RSuplTerminalSubSession
- {
-
-
-public:
- /**
- * Constructor for RSuplTerminalInternal
- *
- */
- IMPORT_C RSuplTerminalInternal();
-
- /**
- * This is an asynchronous request to SUPL Server to determine position
- * information corresponding to given area information.
- * Client can have only one outstanding asynchronous request per sub-session.
- * @param [OUT] aStatus to return result code
- * @param[IN] aGeoCellInfo Cell information
- * @return aStatus will have
- * - KErrNone if request is completed sucessfully.
- * - KErrCancel if the request was successfully cancelled
- * - KErrNotReady if SUPL server is not ready to determine position information,
- * client can retry after sometime.
- * - KErrAlreadyExists if there is already an ongoing request on sub-session.
- * - KErrServerTerminated if server got terminated due to some error
- * - KErrNotSupported if function is called when Session is NOT Opened with SUPL_1_0 service
- * - KErrGeneral for all other errors
- *
- */
-
- IMPORT_C void ConvertAreaInfoToCoordinates(
- TRequestStatus& aStatus,
- TGeoCellInfo& aGeoCellInfo );
-
- /**
- * Cancels an outstanding asynchronous conversion request issued via ConvertAreaInfoToCoordinates
- * Canceling requests is typically attempted when an client
- * is closing down.
- *
- */
- IMPORT_C void CancelLocationConversion();
-
-private:
- //Cell Information
- TGeoCellInfo iGeoCellInfo;
-
- //To check if conversion request has issued or not
- TBool iConversionRequestIssued;
- };
-
-#endif // __EPOS_SUPLTERMINALINTERNAL_H__
--- a/supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalipc.h Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalipc.h Wed Oct 13 15:01:35 2010 +0300
@@ -61,9 +61,8 @@
ESuplTerminalSubssnStartPeriodicTriggerWithServer,
ESuplTerminalSubssnNotifyTriggerFired,
ESuplTerminalSubssnStopTriggerSession,
- ESuplTerminalSubssnLocationConversion,
- ESuplTerminalSubssnCancelLocationConversion,
- ESuplSubssnCustomCodesBegin = ESuplCustomIpcOffset
+
+ ESuplSubssnCustomCodesBegin = ESuplCustomIpcOffset,
};
#endif // __EPOS_SUPLTERMINALIPC_H__
--- a/supl/locationsuplfw/terminalinitiationapi/src/epos_suplterminalinternal.cpp Wed Sep 15 12:40:28 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Client-Server communication
-*
-*/
-#include <s32mem.h>
-#include <e32std.h>
-
-#include "epos_suplterminalinternal.h"
-#include "epos_suplterminalipc.h"
-#include "epos_suplterminalerrors.h"
-#include "epos_suplterminalptrholder.h"
-
-//-----------------------------------------------------------------------------
-// RSuplTerminalInternal
-//-----------------------------------------------------------------------------
-
-// -----------------------------------------------------------------------------
-// RSuplTerminalInternal::RSuplTerminalInternal()
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C RSuplTerminalInternal::RSuplTerminalInternal()
- : iConversionRequestIssued( EFalse )
- {
- }
-
-// ---------------------------------------------------------
-// RSuplTerminalInternal::ConvertAreaInfoToCoordinates
-//
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-EXPORT_C void RSuplTerminalInternal::ConvertAreaInfoToCoordinates( TRequestStatus& aStatus,
- TGeoCellInfo& aGeoCellInfo )
- {
- __ASSERT_ALWAYS(SubSessionHandle(),
- User::Panic(KSuplClientFault, ESuplServerBadHandle));
-
- // Currently only SUPL 1.0 supports cell to geo-coordinates conversion.
- if( iSuplService != ESUPL_1_0 )
- {
- TRequestStatus *status = &aStatus;
- User::RequestComplete(status,KErrNotSupported);
- return;
- }
-
- // Fill the values of data member
- iGeoCellInfo.iMNC = aGeoCellInfo.iMNC;
- iGeoCellInfo.iMCC = aGeoCellInfo.iMCC;
- iGeoCellInfo.iCid = aGeoCellInfo.iCid;
- iGeoCellInfo.iLac = aGeoCellInfo.iLac;
- iGeoCellInfo.iConnectionPrompt = aGeoCellInfo.iConnectionPrompt;
- iGeoCellInfo.iWlanOnly = aGeoCellInfo.iWlanOnly; //OCC
- iGeoCellInfo.iGeoCellType = aGeoCellInfo.iGeoCellType;
-
- iPtrHolder->Ptr(0).Set(
- reinterpret_cast<TUint8*>(&iGeoCellInfo),
- sizeof(iGeoCellInfo),sizeof(iGeoCellInfo));
-
- TIpcArgs args;
-
- args.Set(0,&iPtrHolder->Ptr(0));
- iConversionRequestIssued = ETrue;
- SendReceive(ESuplTerminalSubssnLocationConversion, args, aStatus);
- }
-
-// ---------------------------------------------------------
-// RSuplTerminalInternal::CancelLocationConversion
-//
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-EXPORT_C void RSuplTerminalInternal::CancelLocationConversion()
- {
- __ASSERT_ALWAYS(SubSessionHandle(),
- User::Panic(KSuplClientFault, ESuplServerBadHandle));
- if( iConversionRequestIssued )
- {
- iConversionRequestIssued = EFalse;
- SendReceive(ESuplTerminalSubssnCancelLocationConversion);
- }
- }
-// end of file
--- a/supl/locationsuplfw/utilities/src/epos_csupltrace.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/locationsuplfw/utilities/src/epos_csupltrace.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -140,7 +140,6 @@
const TDesC& aTraceLogFile,
TRefByValue<const TDesC> aFmt, ... )
{
- // coverity[var_decl : FALSE]
VA_LIST list;
VA_START( list, aFmt );
--- a/supl/supltiapiimplementation/src/lbssupltirequestmanager.cpp Wed Sep 15 12:40:28 2010 +0300
+++ b/supl/supltiapiimplementation/src/lbssupltirequestmanager.cpp Wed Oct 13 15:01:35 2010 +0300
@@ -165,12 +165,10 @@
//
void CCLbsSuplTiRequestManager::CloseSession()
{
- if(iTrace)
- iTrace->Trace(_L("CCLbsSuplTiRequestManager::CloseSession() start"), KTraceFileName, __LINE__);
+ iTrace->Trace(_L("CCLbsSuplTiRequestManager::CloseSession() start"), KTraceFileName, __LINE__);
iRequestorCollection.ResetAndDestroy(); //cancels all active requests
iServer.Close();
- if(iTrace)
- iTrace->Trace(_L("CCLbsSuplTiRequestManager::CloseSession() end"), KTraceFileName, __LINE__);
+ iTrace->Trace(_L("CCLbsSuplTiRequestManager::CloseSession() end"), KTraceFileName, __LINE__);
}
// -----------------------------------------------------------------------------
// CCLbsSuplTiRequestManager::FindSessionId