javamanager/javabackup/midp2backup_usif/src.s60/javascrbackuputil.cpp
author hgs
Tue, 06 Jul 2010 20:36:19 +0300
changeset 49 35baca0e7a2e
permissions -rw-r--r--
v2.2.3_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     1
/*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     3
* All rights reserved.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     8
*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     9
* Initial Contributors:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    11
*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    12
* Contributors:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    13
*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    14
* Description:  Implementation of CScrBackupUtil
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    15
*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    16
*/
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    17
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    18
#include "javascrbackuputil.h"
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    19
#include "midp2backupdataids.h"
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    20
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    21
#include "logger.h"
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    22
#include "javasymbianoslayer.h" // for CleanupResetAndDestroyPushL
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    23
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    24
#include <scs/nullstream.h>
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    25
#include <e32cmn.h> 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    26
#include <apaid.h> //for TApaAppCapability::ENonNative
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    27
#include <e32def.h>
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    28
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    29
using namespace java::backup;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    30
using namespace Usif;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    31
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    32
// Properties registered to SCR.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    33
_LIT(KMIDletName, "MIDlet-Name");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    34
_LIT(KUid, "Uid");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    35
_LIT(KMediaId, "Media-Id");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    36
_LIT(KMIDletInfoURL, "MIDlet-Info-URL");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    37
_LIT(KMIDletDescription, "MIDlet-Description");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    38
_LIT(KDownloadURL, "Download-URL");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    39
_LIT(KSettingsPlugin, "SettingsName");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    40
_LIT(KMIDletDeletionConformation, "MIDlet-Delete-Confirm");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    41
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    42
_LIT(KDomainCategory,"Domain-Category");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    43
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    44
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    45
CScrBackupUtil* CScrBackupUtil::NewL()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    46
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    47
    LOG(EBackup,EInfo," --->  CScrBackupUtil:  NewL()");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    48
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    49
    CScrBackupUtil *self = CScrBackupUtil::NewLC();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    50
   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    51
    CleanupStack::Pop(self);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    52
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    53
    LOG(EBackup,EInfo," <--- CScrBackupUtil: NewL()");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    54
    return self;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    55
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    56
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    57
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    58
CScrBackupUtil* CScrBackupUtil::NewLC()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    59
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    60
    LOG(EBackup,EInfo," --->  CScrBackupUtil: NewLC");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    61
    CScrBackupUtil *self = new(ELeave) CScrBackupUtil();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    62
    CleanupStack::PushL(self); 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    63
    self->ConstructL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    64
    LOG(EBackup,EInfo," <--- CScrBackupUtil: NewLC");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    65
    return self;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    66
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    67
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    68
CScrBackupUtil::CScrBackupUtil():iPtrToWriteBuffer(NULL,0)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    69
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    70
    LOG(EBackup,EInfo," --->  CScrBackupUtil: CScrBackupUtil");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    71
    LOG(EBackup,EInfo," <---  CScrBackupUtil: CScrBackupUtil");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    72
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    73
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    74
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    75
void CScrBackupUtil::ConstructL()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    76
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    77
        LOG(EBackup,EInfo," ---> CScrBackupUtil: ConstructL ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    78
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    79
        //will be incremented as and when needed
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    80
        iRemainingInfo = HBufC8::NewL(4096);//TODO :need to change it to the total size of the the attribute
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    81
        //iPtrToWriteBuffer = ((const_cast<TUint8*>(iRemainingInfo->Ptr())));// need to do this coz when fun end and goes to fetch next 4096 bytes i lose it
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    82
        iPtrToWriteBuffer.Set(iRemainingInfo->Des());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    83
        iIsFristCall = ETrue;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    84
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    85
        iState = EIsFetchCompleteInfo;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    86
        iIsToWriteInStream = ETrue;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    87
        LOG(EBackup,EInfo," <--- CScrBackupUtil: ConstructL()");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    88
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    89
void CScrBackupUtil::ConnectScrL()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    90
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    91
            LOG(EBackup,EInfo," ---> CScrBackupUtil: ConnectScrL()");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    92
            iScr = new RSoftwareComponentRegistry();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    93
            if (NULL == iScr)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    94
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    95
                ELOG(EBackup,"Creating RSoftwareComponentRegistry failed");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    96
                User::Leave(KErrGeneral);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    97
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    98
            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    99
            TInt err = iScr->Connect();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   100
            if (KErrNone != err)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   101
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   102
                ELOG1(EBackup,"Connecting to RSoftwareComponentRegistry failed, error %d",err);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   103
                //TODO need to see can we afford leaving here ;)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   104
                User::Leave(err);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   105
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   106
            LOG(EBackup,EInfo," <--- CScrBackupUtil: ConnectScrL()");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   107
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   108
void CScrBackupUtil::ExtractUidAndComponentIdL(RArray<Usif::TComponentId>& componentIds,RArray<TInt>& uids,TInt& ComponentsCount)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   109
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   110
        LOG(EBackup,EInfo," ---> CScrBackupUtil: ExtractUidAndComponentId()");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   111
        CComponentFilter* filter;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   112
        CPropertyEntry* property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   113
        filter = CComponentFilter::NewLC();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   114
        //Set the filter for software type Usif::KSoftwareTypeJava and ftech the Ids
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   115
        filter->SetSoftwareTypeL(Usif::KSoftwareTypeJava);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   116
        TRAPD(error,iScr->GetComponentIdsL(componentIds,filter));
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   117
        if(error)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   118
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   119
            ELOG(EBackup,"Failed to get the components ID");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   120
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   121
        CleanupStack::PopAndDestroy(filter);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   122
        // fetch the no. of component from the given RArray
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   123
        ComponentsCount = componentIds.Count();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   124
        // No use of Component Ids as such as they are used by SCR internally 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   125
        //so exctracted the UID of of each component
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   126
        for(TInt i = 0 ;i < ComponentsCount ; i++)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   127
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   128
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   129
                property = iScr->GetComponentPropertyL(componentIds.operator [](i),KUid());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   130
                if (property->PropertyType() == CPropertyEntry::EIntProperty)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   131
                        {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   132
                           TInt uid = ((CIntPropertyEntry*)property)->IntValue();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   133
                           uids.AppendL(uid);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   134
                             
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   135
                        }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   136
                        else
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   137
                        {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   138
                                 //Error
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   139
                        }  
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   140
                        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   141
                        delete property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   142
                        property = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   143
                    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   144
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   145
        LOG(EBackup,EInfo," <--- CScrBackupUtil: ExtractUidAndComponentId()");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   146
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   147
void CScrBackupUtil::BackupScrDataL(RDesWriteStream& aStream, TBool& aBackupNotFinished, TInt& aBufferSpaceLeft)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   148
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   149
        LOG(EBackup,EInfo," ---> CScrBackupUtil: BackupScrDataL()");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   150
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   151
        iBufferSpaceLeft = aBufferSpaceLeft ;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   152
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   153
        if(iIsFristCall)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   154
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   155
               
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   156
                // to get no. of components need to keep a flag that its called only once
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   157
                ConnectScrL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   158
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   159
                ExtractUidAndComponentIdL(iComponentIds,iUids,iNumberOfComponents);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   160
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   161
                //write the no. of components so that it will help us in restoration time
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   162
                aStream.WriteInt32L(iNumberOfComponents);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   163
                iBufferSpaceLeft -= sizeof(TInt32);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   164
                              
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   165
                //all the ids of the midlets that are to be backedup and the size of the rarray with holds the Ids 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   166
                TPckgBuf<RArray<TInt> > ids(iUids);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   167
                TInt size = ComputeSizeL(ids);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   168
                aStream.WriteInt32L(size);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   169
                iBufferSpaceLeft -= sizeof(TInt32);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   170
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   171
                aStream.WriteL(ids);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   172
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   173
                iBufferSpaceLeft = iBufferSpaceLeft - size;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   174
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   175
                iIsFristCall = EFalse;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   176
            }    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   177
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   178
            for( i ; i < iComponentIds.Count() ;)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   179
                {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   180
                    if(iState == EIsFetchCompleteInfo)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   181
                        {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   182
                            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   183
                            TInt at = iComponentIds.operator[](i);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   184
                            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   185
                            //Temp stream in which all attributes are backed up 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   186
                            RDesWriteStream writeStream;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   187
                            writeStream.Open(iPtrToWriteBuffer);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   188
                            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   189
                            GetComponentInfoL(at,writeStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   190
                            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   191
                            writeStream.CommitL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   192
                            iLengthOfString = iPtrToWriteBuffer.Length();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   193
                            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   194
                            iWriteToStream = ETrue;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   195
                            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   196
                            // write the size, Used while restoring
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   197
                            aStream.WriteInt32L(iLengthOfString);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   198
                            iBufferSpaceLeft = iBufferSpaceLeft - sizeof(TInt);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   199
                            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   200
                            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   201
                        }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   202
                    if(iState == EIsWriteCompleteInfo)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   203
                        {                           
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   204
                         
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   205
                            //writing the remaining information into the new buffer
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   206
                            if(iBufferToWriteNextTime)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   207
                            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   208
                                aStream.WriteL(iPtrToWriteBuffer,iRemainingBuffer);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   209
                                aStream.CommitL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   210
                                LOG(EBackup, EInfo, "attributes written fully in the stream fetching for next component");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   211
                                    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   212
                                iBufferSpaceLeft = iBufferSpaceLeft - iRemainingBuffer;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   213
                                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   214
                                iBufferToWriteNextTime = EFalse;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   215
                                iState = EIsFetchCompleteInfo;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   216
                                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   217
                                iLengthOfString = 0; // to maintain the loop
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   218
                                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   219
                                iWriteToStream = EFalse;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   220
                                i++;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   221
                            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   222
                            // if the whole string cannot be writen, write part of it
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   223
                            if (iLengthOfString > iBufferSpaceLeft && !iBufferToWriteNextTime)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   224
                            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   225
                                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   226
                                iRemainingBuffer = iLengthOfString - iBufferSpaceLeft;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   227
                                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   228
                                aStream.WriteL(iPtrToWriteBuffer,iBufferSpaceLeft);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   229
                                aStream.CommitL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   230
                                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   231
                                iBufferToWriteNextTime = ETrue;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   232
                                break;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   233
                            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   234
                            // else write the complete string
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   235
                            else if(iWriteToStream)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   236
                            {       aStream.WriteL(iPtrToWriteBuffer,iLengthOfString);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   237
                                    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   238
                                    aStream.CommitL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   239
                                    iBufferSpaceLeft = iBufferSpaceLeft - iLengthOfString;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   240
                                    iState = EIsFetchCompleteInfo;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   241
                                    iLengthOfString = 0; // to maintain the loop 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   242
                                    i++;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   243
                            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   244
                            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   245
                        }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   246
                }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   247
            // making it false to backup next component next time
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   248
            if(i >= iComponentIds.Count())
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   249
                aBackupNotFinished = EFalse; 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   250
            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   251
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   252
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   253
template <typename T>
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   254
TInt CScrBackupUtil::ComputeSizeL(const T &aObject)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   255
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   256
        LOG(EBackup,EInfo," ---> computeSize() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   257
        TInt size(0);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   258
        RNullWriteStream nullstream;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   259
        CleanupClosePushL(nullstream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   260
        nullstream << aObject;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   261
        nullstream.CommitL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   262
        size = nullstream.BytesWritten();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   263
     
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   264
        CleanupStack::PopAndDestroy(&nullstream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   265
        LOG(EBackup,EInfo," <--- computeSize() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   266
        return size;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   267
       
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   268
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   269
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   270
void CScrBackupUtil::GetComponentInfoL(TComponentId aComponentId ,RDesWriteStream& aStream )
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   271
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   272
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   273
        LOG(EBackup,EInfo," ---> GetComponentInfo() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   274
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   275
        TInt j = 0 ;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   276
        CPropertyEntry* property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   277
        CComponentEntry* entries = CComponentEntry::NewL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   278
        CleanupStack::PushL(entries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   279
        TLanguage language =KNonLocalized;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   280
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   281
        TBool result = iScr->GetComponentL(aComponentId,*entries,language);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   282
        entries->ExternalizeL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   283
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   284
        CleanupStack::PopAndDestroy(entries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   285
        TBool isComponentPresent = iScr->IsComponentPresentL(aComponentId);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   286
        aStream.WriteInt8L(isComponentPresent);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   287
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   288
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   289
        // Localizable Component info 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   290
        RPointerArray<CLocalizableComponentInfo> localizableComponentInfo;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   291
        iScr->GetComponentLocalizedInfoL(aComponentId,localizableComponentInfo);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   292
        aStream.WriteInt32L(localizableComponentInfo.Count());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   293
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   294
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   295
        for(j ; j < localizableComponentInfo.Count(); j++)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   296
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   297
                    (localizableComponentInfo.operator [](j))->ExternalizeL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   298
                     
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   299
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   300
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   301
        // Properties
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   302
        // extracted the UID
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   303
        property = iScr->GetComponentPropertyL(aComponentId,KUid());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   304
        if (NULL != property)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   305
            {  
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   306
                 property->ExternalizeL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   307
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   308
                  
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   309
                delete property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   310
                property = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   311
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   312
        else 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   313
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   314
                // need to return or have to proceed
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   315
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   316
        // Exctracted Domain - Category
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   317
        property = iScr->GetComponentPropertyL(aComponentId,KDomainCategory());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   318
        if (NULL != property)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   319
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   320
                property->ExternalizeL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   321
                                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   322
                delete property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   323
                property = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   324
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   325
        // Exctracted Media ID
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   326
        property = iScr->GetComponentPropertyL(aComponentId,KMediaId());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   327
        if (NULL != property)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   328
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   329
                property->ExternalizeL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   330
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   331
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   332
                delete property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   333
                property = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   334
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   335
        // Exctracted Setings plugin name
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   336
        property = iScr->GetComponentPropertyL(aComponentId,KSettingsPlugin());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   337
        if (NULL != property)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   338
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   339
                property->ExternalizeL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   340
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   341
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   342
                delete property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   343
                property = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   344
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   345
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   346
        // Optional Properties
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   347
        // extracted info URL
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   348
        property = iScr->GetComponentPropertyL(aComponentId,KMIDletInfoURL());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   349
        if (NULL != property)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   350
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   351
                property->ExternalizeL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   352
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   353
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   354
                delete property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   355
                property = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   356
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   357
        else // as its optional property so could be NULL 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   358
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   359
                aStream.WriteInt8L(NULL);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   360
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   361
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   362
        // extracted midlet description
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   363
        property = iScr->GetComponentPropertyL(aComponentId,KMIDletDescription());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   364
        if (NULL != property)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   365
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   366
                property->ExternalizeL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   367
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   368
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   369
                delete property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   370
                property = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   371
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   372
        else // as its optional property so could be NULL 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   373
           {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   374
               aStream.WriteInt8L(NULL);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   375
           }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   376
        // extracted midlet DeletionConformation
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   377
        property = iScr->GetComponentPropertyL(aComponentId,KMIDletDeletionConformation());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   378
        if (NULL != property)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   379
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   380
                property->ExternalizeL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   381
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   382
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   383
                delete property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   384
                property = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   385
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   386
        else // as its optional property so could be NULL 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   387
           {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   388
               aStream.WriteInt8L(NULL);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   389
           }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   390
        //extracted midlet DN URL
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   391
        property = iScr->GetComponentPropertyL(aComponentId,KDownloadURL());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   392
        if (NULL != property)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   393
            {  
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   394
              property->ExternalizeL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   395
              
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   396
              
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   397
              delete property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   398
              property = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   399
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   400
        else // as its optional property so could be NULL 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   401
           {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   402
               aStream.WriteInt8L(NULL);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   403
           }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   404
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   405
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   406
        // backing up files corresponds to component
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   407
        RSoftwareComponentRegistryFilesList fileList;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   408
        CleanupClosePushL(fileList);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   409
        TInt count = iScr->GetComponentFilesCountL(aComponentId); 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   410
        TInt k = 0;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   411
        RPointerArray<HBufC> files;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   412
        fileList.OpenListL(*iScr,aComponentId);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   413
        fileList.NextFileSetL(count,files);        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   414
        aStream.WriteInt32L(files.Count());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   415
        CleanupStack::PopAndDestroy(&fileList);//filelist
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   416
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   417
        for( k ; k < files.Count(); k++)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   418
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   419
               HBufC* temp =  files.operator [](k);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   420
               aStream.WriteInt32L(temp->Length());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   421
               aStream.WriteL(temp->Des());                                    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   422
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   423
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   424
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   425
        RArray<TUid> noOfApps; 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   426
        HBufC* appIcon;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   427
        TAppRegInfo appInfo;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   428
        iScr->GetAppUidsForComponentL(aComponentId,noOfApps); 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   429
        RRegistrationInfoForApplication regInfoIcon;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   430
        CleanupClosePushL(regInfoIcon);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   431
        RApplicationRegistrationInfo regInfoCaption;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   432
        CleanupClosePushL(regInfoCaption);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   433
       
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   434
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   435
       //backing up the no. of apps
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   436
       aStream.WriteInt32L(noOfApps.Count()); 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   437
               
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   438
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   439
        for(j = 0 ; j < noOfApps.Count(); j++ )
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   440
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   441
                regInfoIcon.OpenL(*iScr,noOfApps.operator [](j));
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   442
                regInfoCaption.OpenL(*iScr);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   443
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   444
               //check if language is imp to give as an argument\
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   445
               // Language extracted
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   446
               TLanguage language = regInfoIcon.ApplicationLanguageL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   447
               // Language backed up
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   448
               aStream.WriteInt32L(language);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   449
                                     
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   450
               // AppUID extracted
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   451
               TUid appUid = noOfApps[j];               
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   452
               // AppUID backed up
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   453
               aStream.WriteInt32L(appUid.iUid);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   454
              
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   455
               //App caption extracted 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   456
               regInfoCaption.GetAppInfoL(appUid,appInfo,language);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   457
               TAppCaption caption = appInfo.Caption();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   458
               caption.Trim();// would give the acctual size of content
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   459
               //App caption backed up
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   460
               aStream.WriteL(caption);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   461
               
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   462
               //AppIcon path extracted
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   463
               regInfoIcon.GetAppIconL(appIcon);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   464
               //AppIcon path backed up
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   465
               aStream.WriteL(appIcon->Des());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   466
                     
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   467
            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   468
               //need to backup no. of icons to needed for registrating application
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   469
               TInt noOfIcons = regInfoIcon.NumberOfOwnDefinedIconsL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   470
               aStream.WriteInt32L(noOfIcons);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   471
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   472
               CleanupStack::PopAndDestroy();//regInfoIcon
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   473
               CleanupStack::PopAndDestroy();//regInfoCaption
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   474
               //regInfoIcon.Close();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   475
               //regInfoCaption.Close();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   476
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   477
        iState = EIsWriteCompleteInfo;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   478
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   479
        LOG(EBackup,EInfo," <--- GetComponentInfo() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   480
            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   481
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   482
void CScrBackupUtil::RestoreScrDataL(RDesReadStream& aStream, TInt& aRestoreState, TInt& aBufferSpaceLeft)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   483
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   484
		LOG(EBackup,EInfo," ---> RestoreScrDataL() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   485
        if(iIsFristCall)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   486
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   487
                ConnectScrL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   488
                TInt j = 0;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   489
                TInt presentComponentsCount;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   490
                RArray<Usif::TComponentId> presentComponentsIds;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   491
                iBufferSpaceLeft = aBufferSpaceLeft;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   492
                //aStream.r
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   493
                //reading components count
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   494
                iNumberOfComponents = aStream.ReadInt32L();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   495
                iBufferSpaceLeft = iBufferSpaceLeft - sizeof(TInt32);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   496
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   497
                //reading the size of the TPckgBuf<RArray<TComponentId>>
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   498
                TInt size = aStream.ReadInt32L();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   499
                iBufferSpaceLeft = iBufferSpaceLeft - sizeof(TInt32);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   500
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   501
                //reading TPckgBuf<RArray<TComponentId>> 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   502
                HBufC* temp = HBufC::NewLC(aStream , size);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   503
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   504
                TPckgBuf<RArray<TInt> > ids;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   505
                //extracting RArray from TPckgBuf<RArray<TUids>>
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   506
                ids.Append(temp->Des());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   507
                CleanupStack::PopAndDestroy(temp);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   508
                iUids = ids.operator ()();// populated iUids
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   509
                iBufferSpaceLeft = iBufferSpaceLeft - size;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   510
                iNumberOfComponents = iUids.Count();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   511
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   512
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   513
                ExtractUidAndComponentIdL(presentComponentsIds,iPresentUids,presentComponentsCount);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   514
                                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   515
                // calculating the midlets to be deleted from SCR
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   516
                for(j ; j <= iNumberOfComponents ; j++ )
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   517
                    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   518
                          TInt id = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   519
                          TInt index = 0;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   520
                          id = iUids.operator [](j);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   521
                          index = iPresentUids.Find(iUids.operator [](j));
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   522
                          if(index != NULL)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   523
                              {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   524
                                  presentComponentsIds.Remove(index);// removeing the app that is present in SCr and backed up too
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   525
                                  iPresentUids.Remove(index);// TODO : check if right component Id is removed
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   526
                              }       
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   527
                    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   528
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   529
                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   530
                   iPresentUids.Compress();  // need to see if this works
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   531
                   presentComponentsIds.Compress();// contains the uids that has to be deleted
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   532
                   //Updated the count
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   533
                   presentComponentsCount = iPresentUids.Count();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   534
                   for(j = 0 ; j <= presentComponentsCount ; j++ )
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   535
                       {       
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   536
                           TRAPD(err ,iScr->DeleteApplicationEntriesL(presentComponentsIds.operator [](j)));
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   537
                           if (KErrNone == err)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   538
                               {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   539
                                   iScr->DeleteComponentL(presentComponentsIds.operator [](j));
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   540
                               }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   541
                            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   542
                       }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   543
                   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   544
                   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   545
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   546
        RDesReadStream readStream;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   547
        readStream.Open(iPtrToWriteBuffer);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   548
        for( i ; i < iComponentIds.Count() ;)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   549
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   550
                if(iState == EIsFetchCompleteInfo)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   551
                    {   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   552
                        TUid uid ;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   553
                        uid.iUid = iUids.operator [](i);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   554
                        SetDataInScrL(uid,readStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   555
                        i++;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   556
                    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   557
                if(iState == EIsWriteCompleteInfo)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   558
                    {                           
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   559
                        RDesReadStream readStream;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   560
                        readStream.Open(iPtrToWriteBuffer);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   561
                        iLengthOfString = aStream.ReadInt32L();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   562
                        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   563
                         
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   564
                        //Reading the remaining information into the new buffer
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   565
                        if(iBufferToWriteNextTime)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   566
                            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   567
                            //appened it in the remaing
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   568
                             HBufC* remainingBuff = HBufC::NewL(iRemainingBuffer);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   569
                             TPtr ptr(remainingBuff->Des());            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   570
                             aStream.ReadL(ptr,iRemainingBuffer);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   571
                             iPtrToWriteBuffer.Append(ptr);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   572
                             iState = EIsFetchCompleteInfo;                     
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   573
                             iLengthOfString = 0; // to maintain the loop
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   574
                             iWriteToStream = EFalse;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   575
                                                       
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   576
                            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   577
                            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   578
                        if (iLengthOfString > iBufferSpaceLeft && !iBufferToWriteNextTime)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   579
                        {  
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   580
                        iRemainingBuffer = iLengthOfString - iBufferSpaceLeft;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   581
                        aStream.ReadL(iPtrToWriteBuffer,iBufferSpaceLeft);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   582
                        iBufferToWriteNextTime = ETrue;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   583
                        break ;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   584
                        }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   585
                        // Read the complete string
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   586
                        else if(iWriteToStream)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   587
                        {       
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   588
                            aStream.ReadL(iPtrToWriteBuffer,iLengthOfString);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   589
                            iBufferSpaceLeft = iBufferSpaceLeft - iLengthOfString;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   590
                            iState = EIsFetchCompleteInfo;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   591
                            iLengthOfString = 0; // to maintain the loop 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   592
                            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   593
                        }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   594
                                                
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   595
                    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   596
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   597
        //take care of restorestate
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   598
        // SCR restore is over; Set state to EAppArc
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   599
        if(i >= iComponentIds.Count())
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   600
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   601
                aRestoreState = EAppArc;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   602
                aBufferSpaceLeft = iBufferSpaceLeft;// need to to this coz of last iteration
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   603
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   604
              
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   605
        LOG(EBackup,EInfo," <--- RestoreScrDataL() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   606
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   607
void CScrBackupUtil::SetDataInScrL(TUid aUid , RDesReadStream& aStream)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   608
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   609
		LOG(EBackup,EInfo," ---> SetDataInScrL() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   610
        TInt tempSize = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   611
        TInt j = 0;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   612
        tempSize = aStream.ReadInt32L();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   613
        CComponentEntry* entries;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   614
        entries = CComponentEntry::NewL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   615
        CleanupStack::PushL( entries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   616
        entries->InternalizeL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   617
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   618
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   619
        TBool isComponentPresent = aStream.ReadInt8L();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   620
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   621
        // Localizable Component info 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   622
        RPointerArray<CLocalizableComponentInfo> localizableComponentInfoArray; // Not owned by me nee to delete in last 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   623
        TInt temp = aStream.ReadInt32L();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   624
        for(j ; j <= temp; j++)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   625
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   626
                CLocalizableComponentInfo* componentinfo = CLocalizableComponentInfo::NewL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   627
                localizableComponentInfoArray.Append(componentinfo);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   628
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   629
 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   630
        // now need to set all the properties
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   631
        // extracted the UID
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   632
        CIntPropertyEntry* property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   633
        property = (CIntPropertyEntry*)CPropertyEntry::NewL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   634
        TInt64 id = property->Int64Value();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   635
        delete property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   636
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   637
        //extracted midlet Domain-Catogary
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   638
        CLocalizablePropertyEntry* propertyString;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   639
        propertyString =(CLocalizablePropertyEntry*) CPropertyEntry::NewL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   640
        HBufC* domainCategory  = (propertyString->StrValue()).Alloc();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   641
        delete propertyString;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   642
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   643
        // Exctracted Media ID
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   644
        property = (CIntPropertyEntry*)CPropertyEntry::NewL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   645
        TInt64 mediaID = property->Int64Value();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   646
        delete property;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   647
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   648
        //extracted midlet SettingsValue
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   649
        propertyString =(CLocalizablePropertyEntry*) CPropertyEntry::NewL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   650
        HBufC* SettingsValue  = (propertyString->StrValue()).Alloc();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   651
        delete propertyString;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   652
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   653
        // Optional Properties
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   654
        // extracted info URL
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   655
        propertyString = propertyString = (CLocalizablePropertyEntry*)CPropertyEntry::NewL(aStream);  
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   656
        HBufC* url = (propertyString->StrValue()).Alloc();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   657
        delete propertyString;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   658
                    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   659
               
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   660
        // extracted midlet description
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   661
        propertyString = (CLocalizablePropertyEntry*)CPropertyEntry::NewL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   662
        HBufC* midletDescription  = (propertyString->StrValue()).Alloc();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   663
        delete propertyString;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   664
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   665
        // midlet deletion conformation has to be here
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   666
        CBinaryPropertyEntry* propertyBinary = (CBinaryPropertyEntry*)CPropertyEntry::NewL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   667
        HBufC8* midletDeletionConformation  = (propertyBinary->BinaryValue()).Alloc();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   668
        delete propertyBinary;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   669
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   670
        //extracted midlet DN URL
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   671
        propertyString =(CLocalizablePropertyEntry*) CPropertyEntry::NewL(aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   672
        HBufC* dnUrl  = (propertyString->StrValue()).Alloc();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   673
        delete propertyString;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   674
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   675
        //Extracting no. of files registered with a component
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   676
        //1st the no. of files
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   677
        RPointerArray<HBufC> componentFilesArray;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   678
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   679
        TInt fileCount = aStream.ReadInt32L();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   680
       //now the files 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   681
        for(TInt k = 0 ; k < fileCount ; k++)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   682
            {   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   683
                TInt size = aStream.ReadInt32L();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   684
                HBufC* componentFile = HBufC::NewL(aStream,size);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   685
                CleanupStack::PushL( componentFile);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   686
                componentFilesArray.AppendL(componentFile);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   687
                CleanupStack::Pop( componentFile);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   688
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   689
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   690
        //Extracting no. of apps with a component
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   691
        TInt noOfApps = aStream.ReadInt32L();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   692
        RPointerArray<CAppInfo> appinfoArray;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   693
        for(j = 0 ; j < noOfApps ; j++ )
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   694
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   695
                   CAppInfo* appinfo = CAppInfo::NewL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   696
                   CleanupStack::PushL( appinfo);// i will not own it after using has to be destroyed  
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   697
                   TLanguage language;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   698
                   language = (TLanguage)(aStream.ReadInt32L());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   699
                   TUid uid;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   700
                   uid.Uid(aStream.ReadInt32L());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   701
                   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   702
                   TAppCaption caption ;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   703
                   aStream.ReadL(caption);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   704
                   HBufC* appIcon ;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   705
                   TPtr temp(appIcon->Des());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   706
                   aStream.ReadL(temp);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   707
                   TInt noOfIcons = aStream.ReadInt32L();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   708
                   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   709
                   appinfo->Set(language,uid,caption,temp,noOfIcons);// TODO: check if it works
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   710
                   appinfoArray.Append(appinfo);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   711
                   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   712
                   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   713
                   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   714
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   715
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   716
         
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   717
        TInt index =  iPresentUids.Find(aUid.iUid);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   718
        if(index != NULL)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   719
            {           CComponentEntry* entry = CComponentEntry::NewLC();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   720
                        TUid uid ;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   721
                        uid.Uid(iPresentUids.operator [](index));
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   722
                        TComponentId componentId = iScr->GetComponentIdForAppL(uid);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   723
                        iScr->GetComponentL(componentId,*entry);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   724
                        HBufC* versionPresent = entry->Version().AllocLC();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   725
                        CleanupStack::PopAndDestroy(entry);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   726
                        HBufC* versionBackUpComponent = entries->Version().AllocLC();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   727
                       if((versionPresent->CompareC(versionBackUpComponent->Des())))//check version
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   728
                           {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   729
                                   //ignore  Write a log statement as the midlet is same no need to do any thing :)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   730
                           }    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   731
                       else 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   732
                           {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   733
                             //  delete it and thn register it 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   734
                             TRAPD(err ,iScr->DeleteApplicationEntriesL(componentId));
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   735
                             if (KErrNone == err)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   736
                                  {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   737
                                      iScr->DeleteComponentL(componentId);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   738
                                  }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   739
                            // call register
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   740
                            TComponentId newComponentId = RegisterComponentL(*entries,uid,url->Des(),midletDescription->Des(),midletDeletionConformation->Des(),dnUrl->Des(),mediaID,domainCategory->Des(),SettingsValue->Des(),componentFilesArray,isComponentPresent,localizableComponentInfoArray);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   741
                             for(j=0; j < appinfoArray.Count() ; j++)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   742
                                 {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   743
                                     CAppInfo* appInfo = appinfoArray.operator [](j);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   744
                                     
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   745
                                     RegisterApplicationL(newComponentId,appInfo->GetAppUid(),appInfo->GetCaption(),appInfo->GetAppIcon()->Des(),appInfo->NoOfIcons(),appInfo->GetLanguage());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   746
                                     CleanupStack::PopAndDestroy(appInfo);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   747
                                 }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   748
                           }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   749
                       CleanupStack::PopAndDestroy(versionPresent);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   750
                       CleanupStack::PopAndDestroy(versionBackUpComponent);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   751
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   752
        else
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   753
            {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   754
                //just go register it as its not there in the phone 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   755
                TComponentId newComponentId = RegisterComponentL(*entries,aUid,url->Des(),midletDescription->Des(),midletDeletionConformation->Des(),dnUrl->Des(),mediaID,domainCategory->Des(),SettingsValue->Des(),componentFilesArray,isComponentPresent,localizableComponentInfoArray);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   756
                 for(j=0; j < appinfoArray.Count() ; j++)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   757
                     {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   758
                         CAppInfo* appInfo = appinfoArray.operator [](j);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   759
                         
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   760
                         RegisterApplicationL(newComponentId,appInfo->GetAppUid(),appInfo->GetCaption(),appInfo->GetAppIcon()->Des(),appInfo->NoOfIcons(),appInfo->GetLanguage());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   761
                         CleanupStack::PopAndDestroy(appInfo);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   762
                     }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   763
            }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   764
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   765
        //CleanupStack::Pop();//componentFilesArray
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   766
        CleanupStack::PopAndDestroy( entries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   767
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   768
        LOG(EBackup,EInfo," <--- SetDataInScrL() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   769
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   770
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   771
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   772
TComponentId CScrBackupUtil::RegisterComponentL(CComponentEntry& aEntry ,TUid aUid,TPtr aMidletInfoUrl,
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   773
        TPtr aMidletDescription,TPtr8 aMidletDeletionConformation, TPtr aDownloadUrl,TInt64 aMediaId,TPtr aDomainCatogary , TPtr aSettingValue,
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   774
        RPointerArray<HBufC>& aComponentFilesArray, TBool aIsComponentPresent,RPointerArray<CLocalizableComponentInfo>& aLocalizableComponentInfoArray)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   775
{
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   776
	LOG(EBackup,EInfo," ---> RegisterComponentL() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   777
    HBufC* globalId =( aEntry.GlobalId()).AllocLC();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   778
   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   779
    TComponentId componentId = iScr->AddComponentL(aLocalizableComponentInfoArray,Usif::KSoftwareTypeJava,globalId);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   780
   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   781
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   782
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   783
    iScr->SetComponentVersionL(componentId, aEntry.Version());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   784
    //LOG1(EJavaInstaller, EInfo, "RegisterComponentL: version set %s",*version);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   785
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   786
    iScr->SetIsComponentRemovableL(componentId, aEntry.IsRemovable());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   787
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   788
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   789
    iScr->SetIsComponentDrmProtectedL(componentId, aEntry.IsDrmProtected());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   790
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   791
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   792
    iScr->SetIsComponentKnownRevokedL(componentId,aEntry.IsKnownRevoked());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   793
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   794
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   795
    iScr->SetIsComponentOriginVerifiedL(componentId, aEntry.IsOriginVerified());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   796
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   797
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   798
    iScr->SetComponentSizeL(componentId, aEntry.ComponentSize());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   799
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   800
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   801
    iScr->SetScomoStateL(componentId,aEntry.ScomoState());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   802
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   803
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   804
    iScr->SetIsComponentPresentL(componentId,aIsComponentPresent);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   805
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   806
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   807
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   808
    iScr->SetComponentPropertyL(componentId,KUid(), aUid.iUid);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   809
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   810
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   811
    iScr->SetComponentPropertyL(componentId,KMIDletInfoURL(),aMidletInfoUrl);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   812
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   813
    iScr->SetComponentPropertyL(componentId, KMIDletDescription(), aMidletDescription);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   814
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   815
    iScr->SetComponentPropertyL(componentId,KMIDletDeletionConformation(),aMidletDeletionConformation);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   816
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   817
    iScr->SetComponentPropertyL(componentId, KDownloadURL(), aDownloadUrl);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   818
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   819
    iScr->SetComponentPropertyL(componentId,KDomainCategory(),aDomainCatogary);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   820
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   821
    iScr->SetComponentPropertyL(componentId, KMediaId(), aMediaId);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   822
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   823
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   824
    iScr->SetComponentPropertyL(componentId, KSettingsPlugin(), aSettingValue);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   825
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   826
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   827
    CleanupStack::PopAndDestroy(globalId);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   828
  
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   829
    TInt fileCount = aComponentFilesArray.Count();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   830
    for (TInt i = 0; i < fileCount; i++)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   831
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   832
        HBufC *componentFile = aComponentFilesArray.operator [](i);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   833
        iScr->RegisterComponentFileL(componentId, *componentFile);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   834
        CleanupStack::PopAndDestroy(componentFile);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   835
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   836
    LOG(EBackup,EInfo," <--- RegisterComponentL() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   837
    return componentId;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   838
}
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   839
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   840
void CScrBackupUtil::RegisterApplicationL(TInt aComponentId, TUid aAppUid,
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   841
        TAppCaption aAppName, TDesC aIconFilename, TInt aNumberOfIcons,
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   842
        TLanguage aLanguages)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   843
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   844
		LOG(EBackup,EInfo," ---> RegisterApplicationL() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   845
        TFileName appName;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   846
        RPointerArray<HBufC> ownedFileArray; // codescanner::resourcenotoncleanupstack
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   847
        RPointerArray<Usif::CServiceInfo> serviceArray; // codescanner::resourcenotoncleanupstack
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   848
        RPointerArray<Usif::CPropertyEntry> appPropertiesArray; // codescanner::resourcenotoncleanupstack
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   849
        RPointerArray<Usif::CAppViewData> viewDataList; // codescanner::resourcenotoncleanupstack
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   850
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   851
        RPointerArray<Usif::COpaqueData> opaqueDataArray;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   852
        CleanupResetAndDestroyPushL(opaqueDataArray);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   853
        // Write application Uid to opaque data (needed by MIDlet launcher).
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   854
        TBuf8<4> opaqueDataBuf; // Opaque data will contain one signed 32-bit int.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   855
        RDesWriteStream writeStream(opaqueDataBuf);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   856
        writeStream.WriteInt32L(aAppUid.iUid);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   857
        writeStream.CommitL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   858
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   859
       
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   860
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   861
        COpaqueData *opaqueData = COpaqueData::NewLC(opaqueDataBuf, KUnspecifiedLocale);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   862
        opaqueDataArray.AppendL(opaqueData);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   863
        CleanupStack::Pop(opaqueData);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   864
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   865
        RPointerArray<Usif::CLocalizableAppInfo> localizableAppInfoList;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   866
        CleanupResetAndDestroyPushL(localizableAppInfoList);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   867
        // Add non-localized application name (caption) and icon.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   868
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   869
        CCaptionAndIconInfo *captionAndIconInfo = CCaptionAndIconInfo::NewLC(aAppName,aIconFilename,aNumberOfIcons);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   870
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   871
        CLocalizableAppInfo *locAppInfo = CLocalizableAppInfo::NewLC(/*aShortCaption=*/ KNullDesC,KNonLocalized,
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   872
            /*aGroupName=*/ KNullDesC,captionAndIconInfo,viewDataList);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   873
        localizableAppInfoList.AppendL(locAppInfo);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   874
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   875
        CleanupStack::Pop(locAppInfo);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   876
        CleanupStack::Pop(captionAndIconInfo);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   877
               
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   878
    CCaptionAndIconInfo *tmpCaptionAndIconInfo =CCaptionAndIconInfo::NewLC(aAppName,/*aIconFileName=*/ KNullDesC,/*aNumOfAppIcons=*/ 0);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   879
    CLocalizableAppInfo *tmpLocAppInfo = CLocalizableAppInfo::NewLC(/*aShortCaption=*/ KNullDesC,aLanguages,/*aGroupName=*/ KNullDesC,
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   880
                                                                        tmpCaptionAndIconInfo,/*aViewDataList=*/ viewDataList);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   881
                localizableAppInfoList.AppendL(tmpLocAppInfo);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   882
               
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   883
                CleanupStack::Pop(tmpLocAppInfo);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   884
                CleanupStack::Pop(tmpCaptionAndIconInfo);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   885
            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   886
            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   887
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   888
        // Create application registration data objects.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   889
        TApplicationCharacteristics appCharacteristics;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   890
        appCharacteristics.iAttributes = TApaAppCapability::ENonNative;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   891
        appCharacteristics.iEmbeddability = TApplicationCharacteristics::ENotEmbeddable;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   892
        appCharacteristics.iSupportsNewFile = EFalse;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   893
        appCharacteristics.iAppIsHidden = EFalse;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   894
        appCharacteristics.iLaunchInBackground = EFalse;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   895
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   896
        CApplicationRegistrationData *appRegData =
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   897
        CApplicationRegistrationData::NewLC(ownedFileArray, serviceArray,localizableAppInfoList,appPropertiesArray,opaqueDataArray,
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   898
                /*aAppUid=*/ aAppUid, /*aAppFile=*/ appName,/*aCharacteristics=*/ appCharacteristics,/*aDefaultScreenNumber=*/ 0);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   899
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   900
        LOG(EJavaInstaller, EInfo,"RegisterApplicationL : Called AddApplicationEntryL  >>>>>>>>>>>> ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   901
        iScr->AddApplicationEntryL(aComponentId, *appRegData);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   902
        CleanupStack::PopAndDestroy(appRegData);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   903
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   904
      
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   905
        CleanupStack::Pop(&localizableAppInfoList); // deleted in appRegData destructor
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   906
        CleanupStack::Pop(&opaqueDataArray); // deleted in appRegData destructor
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   907
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   908
        LOG(EBackup,EInfo," <--- RegisterApplicationL() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   909
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   910
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   911
CScrBackupUtil::~CScrBackupUtil()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   912
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   913
    LOG(EBackup,EInfo," ---> ~CScrBackupUtil() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   914
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   915
    if(iScr)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   916
        {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   917
            iScr->Close();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   918
            delete iScr;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   919
            iScr = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   920
        }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   921
    if(iRemainingInfo)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   922
        {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   923
            delete iRemainingInfo;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   924
            iRemainingInfo = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   925
        }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   926
            
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   927
    LOG(EBackup,EInfo," <--- ~CScrBackupUtil() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   928
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   929
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   930
CAppInfo* CAppInfo::NewL()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   931
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   932
    LOG(EBackup,EInfo," ---> CAppInfo:NewL()");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   933
    CAppInfo *self = CAppInfo::NewLC();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   934
    CleanupStack::Pop(self);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   935
    LOG(EBackup,EInfo," <--- CAppInfo:NewL()");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   936
    return self;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   937
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   938
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   939
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   940
CAppInfo* CAppInfo::NewLC()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   941
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   942
    LOG(EBackup,EInfo," ---> CAppInfo:NewLC");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   943
    CAppInfo *self = new(ELeave) CAppInfo();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   944
    CleanupStack::PushL(self); 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   945
    self->ConstructL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   946
    LOG(EBackup,EInfo," <---CAppInfo:NewLC");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   947
    return self;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   948
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   949
CAppInfo::CAppInfo()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   950
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   951
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   952
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   953
void CAppInfo::ConstructL()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   954
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   955
        LOG(EBackup,EInfo," ---> CAppInfo:ConstructL ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   956
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   957
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   958
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   959
        LOG(EBackup,EInfo," <--- CAppInfo:ConstructL()");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   960
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   961
CAppInfo::~CAppInfo()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   962
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   963
    LOG(EBackup,EInfo," ---> CAppInfo:~CAppInfo() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   964
    if(iAppIcon)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   965
        {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   966
            delete iAppIcon;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   967
        }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   968
    LOG(EBackup,EInfo," <--- CAppInfo:~CAppInfo() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   969
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   970
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   971
void CAppInfo::Set(TLanguage language,TUid appUid,Usif::TAppCaption caption,TDesC& appIcon,TInt aNoOfIcons)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   972
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   973
        LOG(EBackup,EInfo," ---> CAppInfo:Set() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   974
        iLanguage = language;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   975
        iAppUid = appUid;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   976
        iCaption = caption;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   977
        iAppIcon->Des().Copy(appIcon);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   978
        iNoOfIcons = aNoOfIcons;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   979
        LOG(EBackup,EInfo," <--- CAppInfo:Set() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   980
        
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   981
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   982
TLanguage CAppInfo::GetLanguage()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   983
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   984
    LOG(EBackup,EInfo," ---> CAppInfo:GetLanguage() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   985
    LOG(EBackup,EInfo," <--- CAppInfo:GetLanguage() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   986
    return iLanguage;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   987
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   988
TUid CAppInfo::GetAppUid()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   989
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   990
    LOG(EBackup,EInfo," ---> CAppInfo:GetAppUid() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   991
    LOG(EBackup,EInfo," <--- CAppInfo:GetAppUid() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   992
    return iAppUid;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   993
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   994
Usif::TAppCaption CAppInfo::GetCaption()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   995
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   996
    LOG(EBackup,EInfo," ---> CAppInfo:GetCaption() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   997
    LOG(EBackup,EInfo," <--- CAppInfo:GetCaption() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   998
    return iCaption;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   999
   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1000
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1001
HBufC* CAppInfo::GetAppIcon()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1002
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1003
    LOG(EBackup,EInfo," ---> CAppInfo:GetAppIcon() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1004
    LOG(EBackup,EInfo," <--- CAppInfo:GetAppIcon() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1005
    return iAppIcon;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1006
    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1007
    }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1008
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1009
TInt CAppInfo::NoOfIcons()
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1010
    {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1011
    LOG(EBackup,EInfo," ---> CAppInfo:NoOfIcons() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1012
    LOG(EBackup,EInfo," <--- CAppInfo:NoOfIcons() ");
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1013
    return iNoOfIcons;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
  1014
    }