mmshplugins/mmshsettingsuiplugin/src/mussettingsmodel.cpp
branchRCL_3
changeset 22 73a1feb507fb
parent 10 a184f3d659e6
child 23 bc78a40cd63c
--- a/mmshplugins/mmshsettingsuiplugin/src/mussettingsmodel.cpp	Thu Aug 19 09:51:39 2010 +0300
+++ b/mmshplugins/mmshsettingsuiplugin/src/mussettingsmodel.cpp	Tue Aug 31 15:12:07 2010 +0300
@@ -12,19 +12,18 @@
 * 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    "mussettings.h"
-#include    "mmussipprofilehandler.h"
+#include    "muslogger.h"
+#include    <centralrepository.h>
+#include    <escapeutils.h>
 
-#include    <escapeutils.h>
-#include    <centralrepository.h>
 #include    <CAknMemorySelectionDialogMultiDrive.h>
 #include    <AknCommonDialogsDynMem.h>
 #include    <mussettingsuirsc.rsg> // GUI Resource
@@ -40,10 +39,6 @@
 // ======== MEMBER FUNCTIONS ========
 
 
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
 CMusSettingsModel* CMusSettingsModel::NewL( MMusSIPProfileHandler& aHandler )
     {
     MUS_LOG( "[MUSSET] -> CMusSettingsModel::NewL()" )
@@ -57,10 +52,6 @@
     }
 
 
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
 CMusSettingsModel::CMusSettingsModel( MMusSIPProfileHandler& aHandler )
     : iHandler( aHandler )
     {
@@ -68,82 +59,224 @@
     }
 
 
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
 void CMusSettingsModel::ConstructL()
     {
     MUS_LOG( "[MUSSET] -> CMusSettingsModel::ConstructL()" )
-    InitializeProfileEnablerL();
-    static_cast<CMusSIPProfileModel*> (&iHandler)->SetCMusSettingsModel(this);
+    iMSSettingsKeys = new (ELeave) MultimediaSharingSettings;
     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 = MultimediaSharingSettings::VideoLocationSettingL();
+    TInt vsVideoLocationMode = iMSSettingsKeys->VideoLocationSettingL();
     MUS_LOG1(
-    "[MUSSET] <- CMusSettingsModel::VSSettingsRecordedVideoSavingL()( %d )",
+    "[MUSSET] <- CMusSettingsContainer::VSSettingsRecordedVideoSavingL()( %d )",
         vsVideoLocationMode )
     return vsVideoLocationMode;
     }
 
+
 // ----------------------------------------------------------------------------
-// Change Activation.
+// 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.
 // ----------------------------------------------------------------------------
 //
-void CMusSettingsModel::SetActivationItem( TBool aActive )
+void CMusSettingsModel::SetVSSettingsAutoRecordL(
+    const MusSettingsKeys::TAutoRecord aAutoRecord )
     {
-    MUS_LOG( "[MUSSET] -> CMusSettingsModel::SetActivationItem()" )
-    MUS_LOG1( "            Profile disabled? ( %d )", aActive )
-    iProfileDisabled = aActive;
-    MUS_LOG( "[MUSSET] <- CMusSettingsModel::SetActivationItem()" )
+    MUS_LOG1(
+    "[MUSSET] -> CMusSettingsContainer::SetVSSettingsAutoRecordL()( %d )",
+        aAutoRecord )
+    iMSSettingsKeys->SetAutoRecordSettingL( aAutoRecord );
+    MUS_LOG( "[MUSSET] <- CMusSettingsModel::SetVSSettingsAutoRecordL()" )
     }
 
+
 // ----------------------------------------------------------------------------
-// Get Activation item.
+// Sets video location.
+// ----------------------------------------------------------------------------
+//
+void CMusSettingsModel::SetVSSettingsRecordedVideoSavingL(
+    const TInt  aVideoLocation )
+    {
+    MUS_LOG1(
+    "[MUSSET] -> CMusSettingsContainer::SetVSSettingsRecordedVideoSavingL()( %d )",
+        aVideoLocation )
+    iMSSettingsKeys->SetVideoLocationSettingL( aVideoLocation );
+    MUS_LOG(
+        "[MUSSET] <- CMusSettingsModel::SetVSSettingsRecordedVideoSavingL()" )
+    }
+
+
+// ----------------------------------------------------------------------------
+// Sets mode of auditory note. In operator specific variants auditory note also
+// sets mode of popup notification setting.
 // ----------------------------------------------------------------------------
 //
-TBool CMusSettingsModel::ActivationItem()
+void CMusSettingsModel::SetVSSettingsNoteL(
+    const MusSettingsKeys::TAuditoryNotification aValue )
     {
-    MUS_LOG( "[MUSSET] -> CMusSettingsModel::ActivationItem()" )
-    MUS_LOG( "[MUSSET] <- CMusSettingsModel::ActivationItem()" )
-    return iProfileDisabled;
+    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 );
+            }
+        }
     }
 
+
 // -----------------------------------------------------------------------------
 // Returns the list of profile names
 // -----------------------------------------------------------------------------
 CDesCArray* CMusSettingsModel::ListOfProfileNamesL()
     {
     MUS_LOG( "[MUSSET] -> CMusSettingsModel::ListOfProfileNamesL()" )
-    RPointerArray<CSIPProfile>& list = iHandler.ProfileArrayL();
+    CArrayPtr<CSIPManagedProfile>* 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[i]->GetParameter( KSIPProviderName, providerName ) );
+            list->At(i)->GetParameter( KSIPProviderName, providerName ) );
 
         HBufC8* decodedProvider =
             EscapeUtils::EscapeDecodeL( *providerName );
@@ -171,7 +304,7 @@
 HBufC* CMusSettingsModel::ProfileNameL( TInt aId )
     {
     MUS_LOG1(
-    "[MUSSET] -> CMusSettingsModel::ProfileNameL()( %d )",
+    "[MUSSET] -> CMusSettingsContainer::ProfileNameL()( %d )",
         aId )
     const TDesC8* providerName = 0;
     TInt index = ProfileIndexByIdL( aId );
@@ -179,7 +312,7 @@
 
     if ( index >= 0 )
         {
-        if ( KErrNone == iHandler.ProfileArrayL()[index]->
+        if ( KErrNone == iHandler.ProfileArrayL()->At( index )->
                 GetParameter( KSIPProviderName, providerName ) )
             {
             HBufC8* decodedProvider =
@@ -202,9 +335,9 @@
     }
 
 
-// -----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 // Returns default SIP profile index.
-// -----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 TInt CMusSettingsModel::DefaultProfileIndex()
     {
     MUS_LOG( "[MUSSET] <- CMusSettingsModel::DefaultProfileIndex()" )
@@ -212,9 +345,9 @@
     }
 
 
-// -----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 // Returns id of default SIP profile.
-// -----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 TUint32 CMusSettingsModel::DefaultProfileId()
     {
     MUS_LOG( "[MUSSET] <- CMusSettingsModel::DefaultProfileId()" )
@@ -222,9 +355,9 @@
     }
 
 
-// -----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 // Returns SIP profile index based on the Id of SIP profile.
-// -----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 TInt CMusSettingsModel::ProfileIndexByIdL( TUint32 aId )
     {
     MUS_LOG( "[MUSSET] <- CMusSettingsModel::ProfileIndexByIdL()" )
@@ -232,41 +365,19 @@
     }
 
 
-// -----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 // 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()" )