| author | asimpson@symbian.org | 
| Thu, 15 Oct 2009 18:00:25 +0100 | |
| branch | RCL_1 | 
| changeset 13 | c1bc4bcc930c | 
| parent 0 | dd21522fd290 | 
| child 25 | 0ed94ceaa377 | 
| permissions | -rw-r--r-- | 
| 0 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 1 | /* | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 2 | * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 3 | * All rights reserved. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 4 | * This component and the accompanying materials are made available | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 5 | * under the terms of the License "Eclipse Public License v1.0" | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 6 | * which accompanies this distribution, and is available | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 7 | * at the URL "http://www.eclipse.org/legal/epl-v10.html". | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 8 | * | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 9 | * Initial Contributors: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 10 | * Nokia Corporation - initial contribution. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 11 | * | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 12 | * Contributors: | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 13 | * | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 14 | * Description: This is defines CWidgetRegistrationManager which handles | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 15 | * registration of widgets | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 16 | * | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 17 | */ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 18 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 19 | #include "WidgetRegistrationManager.h" | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 20 | #include "WidgetUIOperationsWatcher.h" | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 21 | #include <apgcli.h> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 22 | #include <APGICNFL.h> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 23 | #include <S32MEM.H> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 24 | #include <WidgetRegistryConstants.h> | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 25 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 26 | // CONSTANTS | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 27 | _LIT(KMBMExt, ".mbm"); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 28 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 29 | using namespace SwiUI; | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 30 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 31 | // MEMBER FUNCTION DECLARATIONS | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 32 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 33 | // ============================================================================ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 34 | // CWidgetRegistrationManager::NewL() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 35 | // two-phase constructor | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 36 | // | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 37 | // @since 3.1 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 38 | // ============================================================================ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 39 | // | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 40 | CWidgetRegistrationManager* CWidgetRegistrationManager::NewL( RFs& aFs ) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 41 |     {
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 42 | CWidgetRegistrationManager *self = | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 43 | new ( ELeave ) CWidgetRegistrationManager( aFs ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 44 | CleanupStack::PushL( self ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 45 | self->ConstructL(); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 46 | CleanupStack::Pop(); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 47 | return self; | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 48 | } | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 49 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 50 | // ============================================================================ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 51 | // CWidgetRegistrationManager::CWidgetRegistrationManager() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 52 | // C++ constructor | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 53 | // | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 54 | // @since 3.1 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 55 | // ============================================================================ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 56 | // | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 57 | CWidgetRegistrationManager::CWidgetRegistrationManager( | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 58 | RFs& aFs ) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 59 | : iFs( aFs ) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 60 |     {
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 61 | } | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 62 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 63 | // ============================================================================ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 64 | // CWidgetRegistrationManager::~CWidgetRegistrationManager() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 65 | // destructor | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 66 | // | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 67 | // @since 3.1 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 68 | // ============================================================================ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 69 | // | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 70 | CWidgetRegistrationManager::~CWidgetRegistrationManager() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 71 |     {
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 72 | } | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 73 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 74 | // ============================================================================ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 75 | // CWidgetRegistrationManager::CWidgetRegistrationManager() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 76 | // Symbian second phase constructor | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 77 | // | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 78 | // @since 3.1 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 79 | // ============================================================================ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 80 | // | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 81 | void CWidgetRegistrationManager::ConstructL() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 82 |     {
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 83 | } | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 84 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 85 | // ============================================================================ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 86 | // CWidgetRegistrationManager::DeregisterWidgetL() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 87 | // Deregister installed widget as non native app | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 88 | // | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 89 | // @since 3.1 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 90 | // ============================================================================ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 91 | // | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 92 | void CWidgetRegistrationManager::DeregisterWidgetL( const TUid& aUid ) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 93 |     {
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 94 | RApaLsSession apparcSession; | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 95 | User::LeaveIfError( apparcSession.Connect() ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 96 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 97 | apparcSession.PrepareNonNativeApplicationsUpdatesL(); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 98 | apparcSession.DeregisterNonNativeApplicationL( aUid ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 99 | apparcSession.DeregisterNonNativeApplicationTypeL( aUid ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 100 | apparcSession.CommitNonNativeApplicationsUpdatesL(); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 101 | apparcSession.Close(); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 102 | } | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 103 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 104 | // ============================================================================ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 105 | // CWidgetRegistrationManager::RegisterWidgetL() | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 106 | // Register installed widget as non native app | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 107 | // | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 108 | // It will leave if registration is impossible or fails. It will not | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 109 | // leave if icon path is KNullDesC or unusable since a default icon | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 110 | // will be used. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 111 | // | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 112 | // @since 3.1 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 113 | // ============================================================================ | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 114 | // | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 115 | void CWidgetRegistrationManager::RegisterWidgetL( | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 116 | const TDesC& aMainHTML, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 117 | const TDesC& aBundleDisplayName, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 118 | const TDesC& aIconPath, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 119 | const TDesC& aDriveName, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 120 | const TUid& aUid ) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 121 |     {
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 122 | RApaLsSession apparcSession; | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 123 | CleanupClosePushL( apparcSession ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 124 | User::LeaveIfError( apparcSession.Connect() ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 125 | apparcSession.PrepareNonNativeApplicationsUpdatesL(); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 126 | apparcSession.DeregisterNonNativeApplicationL( KUidWidgetLauncher ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 127 | apparcSession.DeregisterNonNativeApplicationTypeL( KUidWidgetLauncher ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 128 | apparcSession.CommitNonNativeApplicationsUpdatesL(); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 129 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 130 | // reasonably like an acceptable file name | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 131 | TBuf<KWidgetRegistryVal> appName; | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 132 | appName.Append( aMainHTML ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 133 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 134 | CApaRegistrationResourceFileWriter* writer = | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 135 | CApaRegistrationResourceFileWriter::NewL( | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 136 | aUid, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 137 | appName, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 138 | TApaAppCapability::ENonNative ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 139 | CleanupStack::PushL( writer ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 140 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 141 | TBuf8<KWidgetRegistryVal> opaqueData; | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 142 | RDesWriteStream writeStream( opaqueData ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 143 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 144 | // le data opaque | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 145 | writeStream.WriteUint32L( aUid.iUid ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 146 | writeStream.WriteUint32L( aMainHTML.Length() ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 147 | writeStream.WriteL( aMainHTML ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 148 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 149 | writeStream.CommitL(); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 150 | writer->SetOpaqueDataL( opaqueData ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 151 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 152 | // avec nom de plume | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 153 | CApaLocalisableResourceFileWriter* lWriter = | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 154 | CApaLocalisableResourceFileWriter::NewL( | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 155 | KNullDesC, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 156 | aBundleDisplayName, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 157 | 1 , | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 158 | KNullDesC ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 159 | CleanupStack::PushL( lWriter ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 160 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 161 | // This call deletes any pending registrations which are not commited | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 162 | // in previous installations (ex: power off case). | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 163 | // This must be the first call after session connect, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 164 | // and before Prepare... call. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 165 | // This function returns with no effect, if no pending registrations in | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 166 | // previous install. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 167 | apparcSession.RollbackNonNativeApplicationsUpdates(); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 168 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 169 | // Prepare for Registration & Deregistration. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 170 | // Actual Registration & Deregistration will be done at Commit call | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 171 | // CommitNonNativeApplicationsUpdatesL. | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 172 | apparcSession.PrepareNonNativeApplicationsUpdatesL(); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 173 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 174 | RFile appArcIconFile; | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 175 | CleanupClosePushL( appArcIconFile ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 176 | RFile* toIconFile = NULL; | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 177 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 178 | // la petit image (ou non) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 179 | if ( aIconPath.Length() ) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 180 |         {
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 181 | TFileName mbmIcon; | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 182 | mbmIcon.Append( aIconPath ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 183 | mbmIcon.Append( aUid.Name() ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 184 | mbmIcon.Append( KMBMExt() ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 185 | TInt error = | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 186 | appArcIconFile.Open( | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 187 | iFs, mbmIcon, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 188 | EFileShareReadersOrWriters|EFileWrite ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 189 | if ( KErrNone == error ) | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 190 |             {
 | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 191 | toIconFile = &appArcIconFile; | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 192 | } | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 193 | } | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 194 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 195 | apparcSession.RegisterNonNativeApplicationL( | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 196 | KUidWidgetLauncher, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 197 | aDriveName, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 198 | *writer, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 199 | lWriter, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 200 | toIconFile ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 201 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 202 | TRAP_IGNORE( apparcSession.RegisterNonNativeApplicationTypeL( | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 203 | KUidWidgetLauncher, | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 204 | KLauncherApp() ) ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 205 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 206 | apparcSession.CommitNonNativeApplicationsUpdatesL(); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 207 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 208 | // appArcIconFile, writer, lWriter, apparcSession | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 209 | CleanupStack::PopAndDestroy( 4 ); | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 210 | } | 
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 211 | |
| 
dd21522fd290
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 212 | // End of File |