# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1282201950 -10800 # Node ID 8bda91a87a00393bf7a678ce8b9be77da28d9e81 # Parent 673fb3e04649e4342f39a2bba11211abb1d60a3d Revision: 201031 Kit: 201033 diff -r 673fb3e04649 -r 8bda91a87a00 gsprofilesrv_plat/settings_plugin_api/inc/GSPluginInterface.h --- a/gsprofilesrv_plat/settings_plugin_api/inc/GSPluginInterface.h Thu Jul 15 18:57:55 2010 +0300 +++ b/gsprofilesrv_plat/settings_plugin_api/inc/GSPluginInterface.h Thu Aug 19 10:12:30 2010 +0300 @@ -20,7 +20,7 @@ #define GSPLUGININTERFACE_H // System includes -#include // For default icons +#include // For default icons #include #include diff -r 673fb3e04649 -r 8bda91a87a00 gsprofilesrv_plat/settings_plugin_api/tsrc/SettingsPluginApiTest/inc/SettingsPluginApiTest.h --- a/gsprofilesrv_plat/settings_plugin_api/tsrc/SettingsPluginApiTest/inc/SettingsPluginApiTest.h Thu Jul 15 18:57:55 2010 +0300 +++ b/gsprofilesrv_plat/settings_plugin_api/tsrc/SettingsPluginApiTest/inc/SettingsPluginApiTest.h Thu Aug 19 10:12:30 2010 +0300 @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include "TestGSPlugin.h" diff -r 673fb3e04649 -r 8bda91a87a00 gsprofilesrv_plat/settings_uis_cenrep_collection_api/inc/SettingsInternalCRKeys.h --- a/gsprofilesrv_plat/settings_uis_cenrep_collection_api/inc/SettingsInternalCRKeys.h Thu Jul 15 18:57:55 2010 +0300 +++ b/gsprofilesrv_plat/settings_uis_cenrep_collection_api/inc/SettingsInternalCRKeys.h Thu Aug 19 10:12:30 2010 +0300 @@ -309,6 +309,15 @@ const TUint32 KSettingsOpticalJoystickStatus = 0x00000019; /** +* To save active / deactive Handwriting input methods when you click editor +* Integer value. +* Default value: 1 +* 0 = Simple HWR will not be opened when user click editor. +* 1 = Simple HWR will be opened when user click editor. +*/ +const TUint32 KSettingsSimpleHWR = 0x0000001A; + +/** * Telephony settings CR UID. */ const TUid KCRUidTelephonySettings = {0x101F877E}; diff -r 673fb3e04649 -r 8bda91a87a00 gssettingsuis/Gs/GSCallDivertPlugin/Inc/GSCallDivertView.h --- a/gssettingsuis/Gs/GSCallDivertPlugin/Inc/GSCallDivertView.h Thu Jul 15 18:57:55 2010 +0300 +++ b/gssettingsuis/Gs/GSCallDivertPlugin/Inc/GSCallDivertView.h Thu Aug 19 10:12:30 2010 +0300 @@ -313,6 +313,15 @@ * @param aTelNumber Phone number for call divert */ void DisplayDataCallDivertNumberQueryL( TTelNumber& aTelNumber ); + + /** + * Remove invalid " ", "()" which were sync with PC suite. + * Make sure the call divert behavior is the same as user making a phone call. + * Illegal ('#', 'p', 'w', ...) characters are handled in ValidatePhoneNumberL(). + * @param aNumber Phone number for call divert + * @param aInvalidChars the invalid chars to remove + */ + void RemoveInvalidChars( TDes& aNumber ); private: diff -r 673fb3e04649 -r 8bda91a87a00 gssettingsuis/Gs/GSCallDivertPlugin/Src/GSCallDivertView.cpp --- a/gssettingsuis/Gs/GSCallDivertPlugin/Src/GSCallDivertView.cpp Thu Jul 15 18:57:55 2010 +0300 +++ b/gssettingsuis/Gs/GSCallDivertPlugin/Src/GSCallDivertView.cpp Thu Aug 19 10:12:30 2010 +0300 @@ -71,6 +71,7 @@ // LOCAL CONSTANTS _LIT( KGSDivertClassName, "CGSCallDivertView" ); +_LIT( KCallDivertInvalidchars, " ()" ); // ========================= MEMBER FUNCTIONS ================================ @@ -588,6 +589,7 @@ TBool accepted = EFalse; while ( !accepted ) { + RemoveInvalidChars( aValue ); if ( aValue.Length() > KGSMaxDataLength ) { //Chop the first extra digits and keep the last KGSMaxDataLength @@ -1357,5 +1359,28 @@ return keyPress; } - +// -------------------------------------------------------------------------- +// CGSCallDivertView::RemoveInvalidChars +// Remove invalid " ", "()" which were sync with PC suite. +// -------------------------------------------------------------------------- +// +void CGSCallDivertView::RemoveInvalidChars( TDes& aNumber ) + { + TInt noOfInvalidchars = KCallDivertInvalidchars().Length(); + TInt location = KErrNone; + // delete the invalid chars of KCallDivertInvalidchars. + //aNumber changed to valid phone number if it contains invalid chars + for ( TInt index = 0; index < noOfInvalidchars; index++ ) + { + while ( ETrue ) + { + location = aNumber.Find( KCallDivertInvalidchars().Mid( index, 1 ) ); + if ( location == KErrNotFound ) + { + break; + } + aNumber.Delete( location, 1 ); //delete the invalid char, aNumber changed + } + } + } // End of File diff -r 673fb3e04649 -r 8bda91a87a00 gssettingsuis/Gs/GSCallPlugin/inc/GSCallPluginContainer.h --- a/gssettingsuis/Gs/GSCallPlugin/inc/GSCallPluginContainer.h Thu Jul 15 18:57:55 2010 +0300 +++ b/gssettingsuis/Gs/GSCallPlugin/inc/GSCallPluginContainer.h Thu Aug 19 10:12:30 2010 +0300 @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include diff -r 673fb3e04649 -r 8bda91a87a00 gssettingsuis/Gs/GSDisplayPlugin/Data/GsDisplayPluginRsc.rss --- a/gssettingsuis/Gs/GSDisplayPlugin/Data/GsDisplayPluginRsc.rss Thu Jul 15 18:57:55 2010 +0300 +++ b/gssettingsuis/Gs/GSDisplayPlugin/Data/GsDisplayPluginRsc.rss Thu Aug 19 10:12:30 2010 +0300 @@ -353,8 +353,9 @@ // //---------------------------------------------------- // -RESOURCE SLIDER r_ambient_light_sensor_slider +RESOURCE SLIDER_WITH_FEEDBACK_STYLE r_ambient_light_sensor_slider { + feedbackstyle = EAknSliderFbDynamic; layout = EAknSettingsItemSliderLayoutWithGraphics; minvalue = 1; maxvalue = 5; @@ -390,8 +391,9 @@ // //---------------------------------------------------- // -RESOURCE SLIDER r_setting_screen_saver_slider +RESOURCE SLIDER_WITH_FEEDBACK_STYLE r_setting_screen_saver_slider { + feedbackstyle = EAknSliderFbDynamic; layout = EAknSettingsItemSliderLayout; minvalue = 1; maxvalue = 30; @@ -429,8 +431,9 @@ // //---------------------------------------------------- // -RESOURCE SLIDER r_setting_backlight_slider +RESOURCE SLIDER_WITH_FEEDBACK_STYLE r_setting_backlight_slider { + feedbackstyle = EAknSliderFbDynamic; layout = EAknSettingsItemSliderLayout; minvalue = 5; maxvalue = 60; diff -r 673fb3e04649 -r 8bda91a87a00 gssettingsuis/Gs/GSNetworkPlugin/Data/GsNetworkPluginRsc.rss --- a/gssettingsuis/Gs/GSNetworkPlugin/Data/GsNetworkPluginRsc.rss Thu Jul 15 18:57:55 2010 +0300 +++ b/gssettingsuis/Gs/GSNetworkPlugin/Data/GsNetworkPluginRsc.rss Thu Aug 19 10:12:30 2010 +0300 @@ -483,6 +483,12 @@ { iconId = EMbmGsnetworkpluginQgn_prop_network_2g; maskId = EMbmGsnetworkpluginQgn_prop_network_2g_mask; + }, + // forbidden operator icon + AKN_ICON + { + iconId = EMbmGsnetworkpluginQgn_prop_nfc_sess_closed; + maskId = EMbmGsnetworkpluginQgn_prop_nfc_sess_closed_mask; } }; } diff -r 673fb3e04649 -r 8bda91a87a00 gssettingsuis/Gs/GSNetworkPlugin/Src/GSNetworkPlugin.cpp --- a/gssettingsuis/Gs/GSNetworkPlugin/Src/GSNetworkPlugin.cpp Thu Jul 15 18:57:55 2010 +0300 +++ b/gssettingsuis/Gs/GSNetworkPlugin/Src/GSNetworkPlugin.cpp Thu Aug 19 10:12:30 2010 +0300 @@ -75,7 +75,10 @@ _LIT( KGSNetWCDMAIcon, "0\t" ); _LIT( KGSNetGSMIcon, "1\t" ); _LIT( KEmptyStr, "" ); - +/* Implementation of forbidden operator icon begins */ +_LIT( KGSNetNoIcon, "\t"); +_LIT( KGSNetForbiddenIcon, "2\t" ); +/* Implementation of forbidden operator icon ends */ // Warning disabled as this constant is used inside __ASSERT_DEBUG #pragma diag_suppress 177 _LIT( KGSNetworkPluginAssertName, "CGSNetworkPlugin" ); @@ -312,23 +315,30 @@ TBool showGraphicalList = Container()->NetPluginModel()->GraphicalNetworkListSupportedL(); __GSLOGSTRING1("[GS] NetworkListL: showGraphicalList: %d", showGraphicalList); - + //if no net items were found, do not show list if ( iNetworkArray->Count() > 0 ) { + /** Implementation of forbidden operator icon begins */ + // check if forbidden operator icon is supported + TBool forbiddenOperator = + FeatureManager::FeatureSupported( KFeatureIdFfTdScdmaForbiddenoperatoricondisplay ); + /** Implementation of forbidden operator icon ends */ while ( !iApprovedNetwork ) { AknPopupListEmpty* list; - if ( showGraphicalList && - FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ) ) + /** Implementation of forbidden operator icon begins */ + if (forbiddenOperator || showGraphicalList + && FeatureManager::FeatureSupported(KFeatureIdProtocolWcdma)) { - list = new ( ELeave ) CAknSingleGraphicPopupMenuStyleListBox; + list = new (ELeave) CAknSingleGraphicPopupMenuStyleListBox; } else { - list = new ( ELeave ) CAknSinglePopupMenuStyleListBox; + list = new (ELeave) CAknSinglePopupMenuStyleListBox; } - + /** Implementation of forbidden operator icon ends */ + CleanupStack::PushL( list ); if ( iNetworkPopupList ) { @@ -389,8 +399,20 @@ __GSLOGSTRING1("[GS] NetworkListL: Network Longname: %S", insertString); } + /** Implementation of forbidden operator icon begins */ //set icon for network - if ( showGraphicalList ) + if ( forbiddenOperator ) + { + if ( info.iStatus == MPsetNetworkSelect::ENetStatForbidden ) + { + insertString->Des().Insert( 0, KGSNetForbiddenIcon ); + } + else + { + insertString->Des().Insert( 0, KGSNetNoIcon ); + } + } + else if ( showGraphicalList ) { if ( FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ) ) @@ -406,6 +428,7 @@ } } } + /** Implementation of forbidden operator icon ends */ items->AppendL( *insertString ); CleanupStack::PopAndDestroy(); } @@ -427,7 +450,8 @@ // Setup graphic items list for dual mode nw selection listbox // based on the local variation - if ( showGraphicalList ) + /** Implementation of forbidden operator icon begins */ + if ( forbiddenOperator || showGraphicalList ) { CAknIconArray* iconList = new (ELeave) CAknIconArray( 10 ); CleanupStack::PushL( iconList ); @@ -435,7 +459,7 @@ list->ItemDrawer()->ColumnData()->SetIconArray( iconList ); CleanupStack::Pop( iconList ); //listbox model now owns this } - + /** Implementation of forbidden operator icon ends */ TInt res = 0; if( items->Count() ) { @@ -1716,7 +1740,9 @@ if( PhoneOnline() ) { __GSLOGSTRING(" [CGSNetworkPlugin::UpdateNetworkTextL] Loading operational-text" ); - iNetworkText = iNWInfo.iLongName.AllocL(); + // The service provider name may missed in SIM card, so display the operator name + // which returned by NTSY here. + iNetworkText = iNWInfo.iOperatorNameInfo.iName.AllocL(); } else { diff -r 673fb3e04649 -r 8bda91a87a00 gssettingsuis/Gs/GSNetworkPlugin/bld.inf --- a/gssettingsuis/Gs/GSNetworkPlugin/bld.inf Thu Jul 15 18:57:55 2010 +0300 +++ b/gssettingsuis/Gs/GSNetworkPlugin/bld.inf Thu Aug 19 10:12:30 2010 +0300 @@ -42,7 +42,8 @@ OPTION HEADERFILE gsnetworkplugin.mbg OPTION SOURCES \ -c8,8 qgn_prop_set_network_sub -c8,8 qgn_prop_set_network_sub_offline -c8,8 qgn_prop_set_network_tab4 \ - -c8,1 qgn_prop_network_3g -c8,1 qgn_prop_network_2g + -c8,1 qgn_prop_network_3g -c8,1 qgn_prop_network_2g \ + -c8,8 qgn_prop_nfc_sess_closed END diff -r 673fb3e04649 -r 8bda91a87a00 gssettingsuis/Gs/conf/s60settingsuis.confml Binary file gssettingsuis/Gs/conf/s60settingsuis.confml has changed diff -r 673fb3e04649 -r 8bda91a87a00 gssettingsuis/Gs/conf/s60settingsuis_101F877C.crml Binary file gssettingsuis/Gs/conf/s60settingsuis_101F877C.crml has changed diff -r 673fb3e04649 -r 8bda91a87a00 gssettingsuis/Gs/conf/s60settingsuis_2002120B.crml Binary file gssettingsuis/Gs/conf/s60settingsuis_2002120B.crml has changed diff -r 673fb3e04649 -r 8bda91a87a00 profilesservices/FileList/Src/CFLDDRMImplementation.cpp --- a/profilesservices/FileList/Src/CFLDDRMImplementation.cpp Thu Jul 15 18:57:55 2010 +0300 +++ b/profilesservices/FileList/Src/CFLDDRMImplementation.cpp Thu Aug 19 10:12:30 2010 +0300 @@ -26,7 +26,7 @@ // EXTERNAL INCLUDES #include #include -#include +#include #include #include diff -r 673fb3e04649 -r 8bda91a87a00 profilesservices/MediaFileList/Inc/mediafiledialog.h --- a/profilesservices/MediaFileList/Inc/mediafiledialog.h Thu Jul 15 18:57:55 2010 +0300 +++ b/profilesservices/MediaFileList/Inc/mediafiledialog.h Thu Aug 19 10:12:30 2010 +0300 @@ -307,7 +307,12 @@ void ShowDetailsPopupL(); void GetPopupText( CMediaFileData* aData, TDes& aText ); TBool MatchFound( const TDesC& aAttribute, const TDesC& aText ); - + + /** + * Filters the invalid files from media file handler. + * @return None. + */ + void FilterInvalidFiles(); private: static void Panic( TInt aReason ); diff -r 673fb3e04649 -r 8bda91a87a00 profilesservices/MediaFileList/Inc/mediafilehandler.h --- a/profilesservices/MediaFileList/Inc/mediafilehandler.h Thu Jul 15 18:57:55 2010 +0300 +++ b/profilesservices/MediaFileList/Inc/mediafilehandler.h Thu Aug 19 10:12:30 2010 +0300 @@ -228,6 +228,13 @@ void GetAttribute( TInt aIndex, TInt aAttr, TDes& aValue, TInt aQueryId ); CMediaFileData* ReadMediaFileDataL( TInt aId ); void CancelQuery(); + + /** + * Remove an item from list of search reuslt + * @param aIndex Search list's index. + * @return None. + */ + void Remove( TInt aIndex ); public: TInt ItemIndex( const TDesC& aItemText, TInt aIndex ); @@ -489,6 +496,13 @@ void SetSearchId( TInt aId ); TInt SearchId(); + /** + * Remove an item from the list of search results. + * @param aIndex List's index. + * @return None. + */ + void Remove( TInt aIndex ); + public: TInt ItemIndex( TInt aId ); TInt ItemIndex( const TDesC& aText ); diff -r 673fb3e04649 -r 8bda91a87a00 profilesservices/MediaFileList/Inc/mediafileprotection.h --- a/profilesservices/MediaFileList/Inc/mediafileprotection.h Thu Jul 15 18:57:55 2010 +0300 +++ b/profilesservices/MediaFileList/Inc/mediafileprotection.h Thu Aug 19 10:12:30 2010 +0300 @@ -92,6 +92,13 @@ TBool IsFileValid( const TDesC& aFileName, TIntention aIntention ); TBool IsVideoValidL( const TDesC& aFileName, TIntention aIntention ); TBool IsVideoValid( const TDesC& aFileName, TIntention aIntention ); + + /** + * Check if the DRM protect file is expired or have no rights to use. + * @param aFileName Full path and filename. + * @return ETrue if the file is DRM expired or have rights to use. + */ + TBool IsFlieDRMExpired( const TDesC& aFileName ); void SetAttrL( TInt aAttr, TInt aValue ); void SetAttrL( TInt aAttr, const TDesC& aValue ); diff -r 673fb3e04649 -r 8bda91a87a00 profilesservices/MediaFileList/Src/mediafiledialog.cpp --- a/profilesservices/MediaFileList/Src/mediafiledialog.cpp Thu Jul 15 18:57:55 2010 +0300 +++ b/profilesservices/MediaFileList/Src/mediafiledialog.cpp Thu Aug 19 10:12:30 2010 +0300 @@ -1337,8 +1337,6 @@ // user has selected some media file GetSelectedItemFileName( currentIndex, iBuf ); - TBool ret = ETrue; - // protection check not done when item is double checked // if ( aAttr != EAttrDoubleClicked ) if (!ifilevalid) @@ -2180,6 +2178,38 @@ iListBox->MakeVisible( ETrue ); } +// ---------------------------------------------------------------------------- +// CMediaFileDialog::FilterInvalidFiles +// +// Filters the invalid files from media file handler +// invalid files = rights expired DRM Protected files and no right files +// ---------------------------------------------------------------------------- +// +void CMediaFileDialog::FilterInvalidFiles() + { + TInt count = iMediaFileHandler->ResultCount(); + + for ( TInt idx = 0; idx < count; ) + { + // check the validity + GetSelectedItemFileName( idx, iBuf ); + if ( iProtectionHandler->IsFlieDRMExpired( iBuf ) ) + { + // remove the item from handler in case of invalid file + iMediaFileHandler->Remove( idx ); + + // if an item was removed from handler, the idx will not + // be changed and the count will be decreased one. after + // recalculate the count, the next item will be checked in next loop. + count = iMediaFileHandler->ResultCount(); + } + else + { + // just increase the idx in case of valid file + idx++; + } + } + } // ---------------------------------------------------------------------------- // CMediaFileDialog::DoUpdateListBoxL @@ -2189,6 +2219,8 @@ // void CMediaFileDialog::DoUpdateListBoxL( TBool aRestFindBox ) { + // filter the invalid files to avoid showing in the list box + FilterInvalidFiles(); iState->SetUnknownFolderPosition( iMediaFileHandler->ResultCount() ); // check current item index in case media file database has changed diff -r 673fb3e04649 -r 8bda91a87a00 profilesservices/MediaFileList/Src/mediafilehandler.cpp --- a/profilesservices/MediaFileList/Src/mediafilehandler.cpp Thu Jul 15 18:57:55 2010 +0300 +++ b/profilesservices/MediaFileList/Src/mediafilehandler.cpp Thu Aug 19 10:12:30 2010 +0300 @@ -1536,6 +1536,20 @@ return iSearchList->Count(); } +// ----------------------------------------------------------------------------- +// CMediaFileHandler::Remove +// Remove an item from list of search reuslt +// ----------------------------------------------------------------------------- +// +void CMediaFileHandler::Remove( TInt aIndex ) + { + if( aIndex >= ResultCount() ) + { + // Invalid index + return; + } + iSearchList->Remove( aIndex ); + } // ----------------------------------------------------------------------------- // CMediaFileHandler::UnknownArtistCount @@ -2939,6 +2953,15 @@ return iSearchId; } +// ----------------------------------------------------------------------------- +// CSearchList::Remove +// Remove an item from the list of search results +// ----------------------------------------------------------------------------- +// +void CSearchList::Remove( TInt aIndex ) + { + iList.Remove( aIndex ); + } // ----------------------------------------------------------------------------- // CSearchList::TakeResultL diff -r 673fb3e04649 -r 8bda91a87a00 profilesservices/MediaFileList/Src/mediafileprotection.cpp --- a/profilesservices/MediaFileList/Src/mediafileprotection.cpp Thu Jul 15 18:57:55 2010 +0300 +++ b/profilesservices/MediaFileList/Src/mediafileprotection.cpp Thu Aug 19 10:12:30 2010 +0300 @@ -234,6 +234,28 @@ // ----------------------------------------------------------------------------- +// CMFProtectionHandler::IsFlieDRMExpired +// +// Check if the DRM protect file is expired or have no rights. +// ----------------------------------------------------------------------------- +// +TBool CMFProtectionHandler::IsFlieDRMExpired( const TDesC& aFileName ) + { + // Check whether the file can be set as automated content or not + TBool canSetAutomated = EFalse; + TInt canSetAutomatedErr = iDRMHelper->CanSetAutomated( aFileName, canSetAutomated ); + + // Check if rights expried or no rights to use + if ( canSetAutomatedErr == DRMCommon::ERightsExpired || + canSetAutomatedErr == DRMCommon::ENoRights ) + { + return ETrue; + } + return EFalse; + } + + +// ----------------------------------------------------------------------------- // CMFProtectionHandler::IsFileValidL // // Function is copy from CFLDDRMImplementation.cpp. diff -r 673fb3e04649 -r 8bda91a87a00 profilesservices/ProfileEngine/ProfileScheduleEventSrc/ProfileScheduleEvent.rss --- a/profilesservices/ProfileEngine/ProfileScheduleEventSrc/ProfileScheduleEvent.rss Thu Jul 15 18:57:55 2010 +0300 +++ b/profilesservices/ProfileEngine/ProfileScheduleEventSrc/ProfileScheduleEvent.rss Thu Aug 19 10:12:30 2010 +0300 @@ -23,7 +23,7 @@ // INCLUDES #include -#include +#include // CONSTANTS // MACROS diff -r 673fb3e04649 -r 8bda91a87a00 profilesservices/ProfileEngine/WrapperSrc/CProEngEngineImpl.cpp --- a/profilesservices/ProfileEngine/WrapperSrc/CProEngEngineImpl.cpp Thu Jul 15 18:57:55 2010 +0300 +++ b/profilesservices/ProfileEngine/WrapperSrc/CProEngEngineImpl.cpp Thu Aug 19 10:12:30 2010 +0300 @@ -27,7 +27,7 @@ #include "CProEngProfileImpl.h" #include "CProEngToneHandler.h" #include "CProEngProfileNameArrayImpl.h" -#include +#include #include #include #include diff -r 673fb3e04649 -r 8bda91a87a00 profilesservices/ProfileEngine/group/ProfileEng.rss --- a/profilesservices/ProfileEngine/group/ProfileEng.rss Thu Jul 15 18:57:55 2010 +0300 +++ b/profilesservices/ProfileEngine/group/ProfileEng.rss Thu Aug 19 10:12:30 2010 +0300 @@ -27,7 +27,7 @@ #include "Profile.hrh" #include #include -#include +#include // CONSTANTS // MACROS