mmshplugins/mmshsettingsuiplugin/src/mussettingsmodel.cpp
branchRCL_3
changeset 33 bc78a40cd63c
parent 32 73a1feb507fb
--- a/mmshplugins/mmshsettingsuiplugin/src/mussettingsmodel.cpp	Tue Aug 31 15:12:07 2010 +0300
+++ b/mmshplugins/mmshsettingsuiplugin/src/mussettingsmodel.cpp	Wed Sep 01 12:31:01 2010 +0100
@@ -12,18 +12,19 @@
 * Contributors:
 *
 * Description:  Document model class for MUSSettingsPlugin.
+*  Version     : %version: 18 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
 
-
-#include    "mmussipprofilehandler.h"
 #include    "mussettingsmodel.h"
+#include    "muslogger.h"
 #include    "mussipprofilemodel.h"
-#include    "muslogger.h"
+#include    "mussettings.h"
+#include    "mmussipprofilehandler.h"
+
+#include    <escapeutils.h>
 #include    <centralrepository.h>
-#include    <escapeutils.h>
-
 #include    <CAknMemorySelectionDialogMultiDrive.h>
 #include    <AknCommonDialogsDynMem.h>
 #include    <mussettingsuirsc.rsg> // GUI Resource
@@ -39,6 +40,10 @@
 // ======== MEMBER FUNCTIONS ========
 
 
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
 CMusSettingsModel* CMusSettingsModel::NewL( MMusSIPProfileHandler& aHandler )
     {
     MUS_LOG( "[MUSSET] -> CMusSettingsModel::NewL()" )
@@ -52,6 +57,10 @@
     }
 
 
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
 CMusSettingsModel::CMusSettingsModel( MMusSIPProfileHandler& aHandler )
     : iHandler( aHandler )
     {
@@ -59,224 +68,82 @@
     }
 
 
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
 void CMusSettingsModel::ConstructL()
     {
     MUS_LOG( "[MUSSET] -> CMusSettingsModel::ConstructL()" )
-    iMSSettingsKeys = new (ELeave) MultimediaSharingSettings;
+    InitializeProfileEnablerL();
+    static_cast<CMusSIPProfileModel*> (&iHandler)->SetCMusSettingsModel(this);
     MUS_LOG( "[MUSSET] <- CMusSettingsModel::ConstructL()" )
     }
 
 
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
 CMusSettingsModel::~CMusSettingsModel()
     {
     MUS_LOG( "[MUSSET] -> CMusSettingsModel::~CMusSettingsModel()" )
-    delete iMSSettingsKeys;
-    iMSSettingsKeys = NULL;
     MUS_LOG( "[MUSSET] <- CMusSettingsModel::~CMusSettingsModel()" )
     }
 
-
-// ----------------------------------------------------------------------------
-// Returns operator variant mode (normal or operator specific. This is used for
-// runtime variation of Settings UI.
-// ----------------------------------------------------------------------------
-//
-MusSettingsKeys::TOperatorVariant CMusSettingsModel::VSSettingsOperatorVariantL()
-    {
-    MUS_LOG( "[MUSSET] -> CMusSettingsModel::VSSettingsOperatorVariantL()" )
-
-    MusSettingsKeys::TOperatorVariant operatorVariant =
-    	iMSSettingsKeys->OperatorVariantSettingL();
-
-    MUS_LOG1(
-        "[MUSSET] <- CMusSettingsContainer::VSSettingsOperatorVariantL()( %d )",
-        operatorVariant )
-    return operatorVariant;
-    }
-
-
-// ----------------------------------------------------------------------------
-// Returns VS activation mode.
-// ----------------------------------------------------------------------------
-//
-MusSettingsKeys::TActivation CMusSettingsModel::VSSettingsActivationL()
-    {
-    MUS_LOG( "[MUSSET] -> CMusSettingsModel::VSSettingsActivationL()" )
-    MusSettingsKeys::TActivation activationMode =
-    	iMSSettingsKeys->ActivationSettingL();
-    MUS_LOG1(
-        "[MUSSET] <- CMusSettingsContainer::VSSettingsActivationL()( %d )",
-        activationMode )
-    return activationMode;
-    }
-
-
-// ----------------------------------------------------------------------------
-// Returns SIP profile mode.
-// ----------------------------------------------------------------------------
-//
-TInt CMusSettingsModel::VSSettingsProfileL()
-    {
-    MUS_LOG( "[MUSSET] -> CMusSettingsModel::VSSettingsProfileL()" )
-    TInt vsProfileMode = iMSSettingsKeys->SipProfileSettingL();
-    MUS_LOG1(
-        "[MUSSET] <- CMusSettingsContainer::VSSettingsProfileL()( %d )",
-        vsProfileMode )
-    return vsProfileMode;
-    }
-
-
-// ----------------------------------------------------------------------------
-// Returns video autorecord mode.
-// ----------------------------------------------------------------------------
-//
-MusSettingsKeys::TAutoRecord CMusSettingsModel::VSSettingsAutoRecordL()
-    {
-    MUS_LOG( "[MUSSET] -> CMusSettingsModel::VSSettingsAutoRecordL()" )
-    MusSettingsKeys::TAutoRecord vsAutoRecordMode =
-        iMSSettingsKeys->AutoRecordSettingL();
-    MUS_LOG1(
-        "[MUSSET] <- CMusSettingsContainer::VSSettingsAutoRecordL()( %d )",
-        vsAutoRecordMode )
-    return  vsAutoRecordMode;
-    }
-
-
-// ----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
 // Returns recorded video saving mode.
-// ----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
 //
 TInt CMusSettingsModel::VSSettingsRecordedVideoSavingL()
     {
     MUS_LOG( "[MUSSET] -> CMusSettingsModel::VSSettingsRecordedVideoSavingL()" )
-    TInt vsVideoLocationMode = iMSSettingsKeys->VideoLocationSettingL();
+    TInt vsVideoLocationMode = MultimediaSharingSettings::VideoLocationSettingL();
     MUS_LOG1(
-    "[MUSSET] <- CMusSettingsContainer::VSSettingsRecordedVideoSavingL()( %d )",
+    "[MUSSET] <- CMusSettingsModel::VSSettingsRecordedVideoSavingL()( %d )",
         vsVideoLocationMode )
     return vsVideoLocationMode;
     }
 
-
 // ----------------------------------------------------------------------------
-// Returns mode of audible note.
-// ----------------------------------------------------------------------------
-//
-MusSettingsKeys::TAuditoryNotification CMusSettingsModel::VSSettingsNoteL()
-    {
-    MUS_LOG( "[MUSSET] -> CMusSettingsModel::VSSettingsNoteL()" )
-    MusSettingsKeys::TAuditoryNotification vsNoteMode =
-        iMSSettingsKeys->AuditoryNotificationSettingL();
-    MUS_LOG1(
-    "[MUSSET] <- CMusSettingsContainer::VSSettingsNoteL()( %d )",
-        vsNoteMode )
-    return vsNoteMode;
-    }
-
-
-// ----------------------------------------------------------------------------
-// Sets VS activation mode.
-// ----------------------------------------------------------------------------
-//
-void CMusSettingsModel::SetVSSettingsActivationL(
-        const MusSettingsKeys::TActivation aActivation)
-    {
-    MUS_LOG1(
-    "[MUSSET] -> CMusSettingsContainer::SetVSSettingsActivationL()( %d )",
-        aActivation )
-    iMSSettingsKeys->SetActivationSettingL( aActivation );
-    MUS_LOG( "[MUSSET] <- CMusSettingsModel::SetVSSettingsActivationL()" )
-    }
-
-
-// ----------------------------------------------------------------------------
-// Sets SIP Profile mode.
-// ----------------------------------------------------------------------------
-//
-void CMusSettingsModel::SetVSSettingsProfileL( const TInt aProfile )
-    {
-    MUS_LOG1(
-    "[MUSSET] -> CMusSettingsContainer::SetVSSettingsProfileL()( %d )",
-        aProfile )
-    iMSSettingsKeys->SetSipProfileSettingL( aProfile );
-    MUS_LOG( "[MUSSET] <- CMusSettingsModel::SetVSSettingsProfileL()" )
-    }
-
-
-// ----------------------------------------------------------------------------
-// Sets video autorecord mode.
+// Change Activation.
 // ----------------------------------------------------------------------------
 //
-void CMusSettingsModel::SetVSSettingsAutoRecordL(
-    const MusSettingsKeys::TAutoRecord aAutoRecord )
+void CMusSettingsModel::SetActivationItem( TBool aActive )
     {
-    MUS_LOG1(
-    "[MUSSET] -> CMusSettingsContainer::SetVSSettingsAutoRecordL()( %d )",
-        aAutoRecord )
-    iMSSettingsKeys->SetAutoRecordSettingL( aAutoRecord );
-    MUS_LOG( "[MUSSET] <- CMusSettingsModel::SetVSSettingsAutoRecordL()" )
-    }
-
-
-// ----------------------------------------------------------------------------
-// Sets video location.
-// ----------------------------------------------------------------------------
-//
-void CMusSettingsModel::SetVSSettingsRecordedVideoSavingL(
-    const TInt  aVideoLocation )
-    {
-    MUS_LOG1(
-    "[MUSSET] -> CMusSettingsContainer::SetVSSettingsRecordedVideoSavingL()( %d )",
-        aVideoLocation )
-    iMSSettingsKeys->SetVideoLocationSettingL( aVideoLocation );
-    MUS_LOG(
-        "[MUSSET] <- CMusSettingsModel::SetVSSettingsRecordedVideoSavingL()" )
+    MUS_LOG( "[MUSSET] -> CMusSettingsModel::SetActivationItem()" )
+    MUS_LOG1( "            Profile disabled? ( %d )", aActive )
+    iProfileDisabled = aActive;
+    MUS_LOG( "[MUSSET] <- CMusSettingsModel::SetActivationItem()" )
     }
 
-
 // ----------------------------------------------------------------------------
-// Sets mode of auditory note. In operator specific variants auditory note also
-// sets mode of popup notification setting.
+// Get Activation item.
 // ----------------------------------------------------------------------------
 //
-void CMusSettingsModel::SetVSSettingsNoteL(
-    const MusSettingsKeys::TAuditoryNotification aValue )
+TBool CMusSettingsModel::ActivationItem()
     {
-    MUS_LOG1(
-    "[MUSSET] -> CMusSettingsContainer::SetVSSettingsNoteL()( %d )", aValue )
-    iMSSettingsKeys->SetAuditoryNotificationSettingL( aValue );
-
-    if ( VSSettingsOperatorVariantL() == MusSettingsKeys::EOperatorSpecific )
-        {
-        if ( MusSettingsKeys::EAuditoryNotificationOn == aValue )
-            {
-            iMSSettingsKeys->SetPopupNotificationSettingL(
-                MusSettingsKeys::EPopupNotificationOn );
-            }
-        else
-            {
-            iMSSettingsKeys->SetPopupNotificationSettingL(
-                MusSettingsKeys::EPopupNotificationOff );
-            }
-        }
+    MUS_LOG( "[MUSSET] -> CMusSettingsModel::ActivationItem()" )
+    MUS_LOG( "[MUSSET] <- CMusSettingsModel::ActivationItem()" )
+    return iProfileDisabled;
     }
 
-
 // -----------------------------------------------------------------------------
 // Returns the list of profile names
 // -----------------------------------------------------------------------------
 CDesCArray* CMusSettingsModel::ListOfProfileNamesL()
     {
     MUS_LOG( "[MUSSET] -> CMusSettingsModel::ListOfProfileNamesL()" )
-    CArrayPtr<CSIPManagedProfile>* list = iHandler.ProfileArrayL();
+    RPointerArray<CSIPProfile>& list = iHandler.ProfileArrayL();
 
     CDesCArray* array = new ( ELeave ) CDesCArrayFlat( KSIPGranularity );
     CleanupStack::PushL( array );
 
-    for ( TInt i = 0; i < list->Count(); i++ )
+    for ( TInt i = 0; i < list.Count(); i++ )
         {
         const TDesC8* providerName = 0;
         User::LeaveIfError(
-            list->At(i)->GetParameter( KSIPProviderName, providerName ) );
+            list[i]->GetParameter( KSIPProviderName, providerName ) );
 
         HBufC8* decodedProvider =
             EscapeUtils::EscapeDecodeL( *providerName );
@@ -304,7 +171,7 @@
 HBufC* CMusSettingsModel::ProfileNameL( TInt aId )
     {
     MUS_LOG1(
-    "[MUSSET] -> CMusSettingsContainer::ProfileNameL()( %d )",
+    "[MUSSET] -> CMusSettingsModel::ProfileNameL()( %d )",
         aId )
     const TDesC8* providerName = 0;
     TInt index = ProfileIndexByIdL( aId );
@@ -312,7 +179,7 @@
 
     if ( index >= 0 )
         {
-        if ( KErrNone == iHandler.ProfileArrayL()->At( index )->
+        if ( KErrNone == iHandler.ProfileArrayL()[index]->
                 GetParameter( KSIPProviderName, providerName ) )
             {
             HBufC8* decodedProvider =
@@ -335,9 +202,9 @@
     }
 
 
-// ----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
 // Returns default SIP profile index.
-// ----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
 TInt CMusSettingsModel::DefaultProfileIndex()
     {
     MUS_LOG( "[MUSSET] <- CMusSettingsModel::DefaultProfileIndex()" )
@@ -345,9 +212,9 @@
     }
 
 
-// ----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
 // Returns id of default SIP profile.
-// ----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
 TUint32 CMusSettingsModel::DefaultProfileId()
     {
     MUS_LOG( "[MUSSET] <- CMusSettingsModel::DefaultProfileId()" )
@@ -355,9 +222,9 @@
     }
 
 
-// ----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
 // Returns SIP profile index based on the Id of SIP profile.
-// ----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
 TInt CMusSettingsModel::ProfileIndexByIdL( TUint32 aId )
     {
     MUS_LOG( "[MUSSET] <- CMusSettingsModel::ProfileIndexByIdL()" )
@@ -365,19 +232,41 @@
     }
 
 
-// ----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
 // Returns SIP profile Id based on the index of SIP profile.
-// ----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
 TUint32 CMusSettingsModel::ProfileIdByIndex( TUint aIndex )
     {
     MUS_LOG( "[MUSSET] <- CMusSettingsModel::ProfileIdByIndex()" )
     return iHandler.ProfileIdByIndex( aIndex );
     }
 
+// -----------------------------------------------------------------------------
+// Initialize SIP profile enabler data.
+// -----------------------------------------------------------------------------
+void CMusSettingsModel::InitializeProfileEnablerL() 
+    {
+    MUS_LOG( "[MUSSET] -> CMusSettingsModel::InitializeProfileEnabler()" )
+    if ( MultimediaSharingSettings::OperatorVariantSettingL() ==
+               MusSettingsKeys::EOperatorSpecific )
+       {
+       TBool enabled(EFalse);
+       
+       CMusSIPProfileModel& handler = 
+           static_cast<CMusSIPProfileModel&>( iHandler );
+       TRAPD( error, enabled = handler.ProfileEnabledL());
+       enabled = error != KErrNone ? EFalse : enabled;
+       MUS_LOG2("SIP registration service( %d ), error( %d )", enabled, error )
+       //profile enabled - activation disabled = false 
+       //profile disabled - activation disabled = true 
+       SetActivationItem( !enabled );
+       }
+    MUS_LOG( "[MUSSET] <- CMusSettingsModel::InitializeProfileEnabler()" )
+    }
 
-// ----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
 // Returns memory selction dialog pointer.
-// ----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
 CAknMemorySelectionDialogMultiDrive* CMusSettingsModel::MemorySelectionDialogLC()
     {
     MUS_LOG( "[MUSSET] -> CMusSettingsModel::MemorySelectionDialogLC()" )