contentstorage/cahandler/app/src/cauninstalloperation.cpp
changeset 80 397d00875918
parent 73 4bc7b118b3df
child 83 156f692b1687
--- a/contentstorage/cahandler/app/src/cauninstalloperation.cpp	Fri May 14 16:10:06 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,208 +0,0 @@
-/*
- * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:  ?Description
- *
- */
-
-#include <apgcli.h>
-#include <swi/sisregistrysession.h>
-#include <swi/sisregistryentry.h>
-
-#include "cautils.h"
-#include "cadef.h"
-#include "cainnerentry.h"
-#include "cauninstalloperation.h"
-_LIT8(KAppMimeType, "x-epoc/x-sisx-app");
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------------------------
-// CCaUninstallOperation::~CCaUninstallOperation
-// ---------------------------------------------------------------------------
-//
-CCaUninstallOperation::~CCaUninstallOperation()
-{
-    Cancel();
-    iUninstaller.Close();
-}
-
-// ---------------------------------------------------------------------------
-// CCaUninstallOperation::NewL
-// ---------------------------------------------------------------------------
-//
-CCaUninstallOperation *CCaUninstallOperation::NewL(CCaInnerEntry &aEntry,
-        TInt aPriority)
-{
-    CCaUninstallOperation *self;
-
-    self = new(ELeave) CCaUninstallOperation(aEntry, aPriority);
-    CleanupStack::PushL(self);
-    self->ConstructL(aEntry);
-    CleanupStack::Pop(self);
-    return self;
-}
-
-// ---------------------------------------------------------------------------
-// CCaUninstallOperation::CCaUninstallOperation
-// ---------------------------------------------------------------------------
-//
-CCaUninstallOperation::CCaUninstallOperation(CCaInnerEntry &aEntry,
-        TInt aPriority) :
-    CActive(aPriority), iEntry(aEntry), iUninstaller(), iId(0)
-{
-    CActiveScheduler::Add(this);
-}
-
-// ---------------------------------------------------------------------------
-// CCaUninstallOperation::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CCaUninstallOperation::ConstructL(CCaInnerEntry &aEntry)
-{
-    TUint uid = aEntry.GetUid();
-
-    TUid packageUid = KNullUid;
-    TPtrC8 mimeType;
-
-    if (!(aEntry.GetFlags() & ERemovable)) {
-        User::Leave(KErrAccessDenied);
-    }
-
-    User::LeaveIfError(iUninstaller.Connect());
-    iId = aEntry.GetId();
-    if (aEntry.GetEntryTypeName() == KCaTypeWidget()) {
-        TBuf<KMaxUidName> uidDesc;
-        aEntry.FindAttribute(KCaPackageUid, uidDesc);
-        TLex uidLex(uidDesc);
-        TUint32 uidValue;
-        User::LeaveIfError(uidLex.Val(uidValue, EHex));
-
-        packageUid.iUid = static_cast<TInt32>(uidValue);
-        mimeType.Set(KAppMimeType);
-    } else {
-        AppInfoL(TUid::Uid(uid), mimeType, packageUid);
-    }
-
-    // Commence the uninstallations
-    iUninstaller.Uninstall(iStatus, packageUid, mimeType);
-    SetActive();
-}
-
-// ---------------------------------------------------------------------------
-// CCaUninstallOperation::AppInfo
-// ---------------------------------------------------------------------------
-//
-void CCaUninstallOperation::AppInfoL(const TUid &aAppUid,
-                                     TPtrC8 &aMimeType, TUid &aPackageUid)
-{
-    RApaLsSession apaLsSession;
-
-    User::LeaveIfError(apaLsSession.Connect());
-    CleanupClosePushL(apaLsSession);
-    User::LeaveIfError(apaLsSession.GetAllApps());
-
-    // TApaAppInfo size is greater then 1024 bytes
-    // so its instances should not be created on the stack.
-    TApaAppInfo* appInfo = new(ELeave) TApaAppInfo();
-    CleanupStack::PushL(appInfo);
-    User::LeaveIfError(apaLsSession.GetAppInfo(*appInfo, aAppUid));
-    if (!GetInstallPkgUidL(appInfo->iFullName, aPackageUid)) {
-        aPackageUid = aAppUid;
-    }
-    CleanupStack::PopAndDestroy(appInfo);
-    aMimeType.Set(KAppMimeType);
-
-    CleanupStack::PopAndDestroy(&apaLsSession);
-}
-
-// ---------------------------------------------------------------------------
-// CCaUninstallOperation::GetInstallPkgUidL
-// ---------------------------------------------------------------------------
-//
-TBool CCaUninstallOperation::GetInstallPkgUidL(const TDesC &aAppFullName,
-        TUid &aPackageUid)
-{
-    // Search for the full name of the application amongst every file name in
-    // every installed packages.
-    TBool found = EFalse;
-    Swi::RSisRegistrySession iSisRegSession;
-
-    // Get the array of ids of every installed packages
-    if (KErrNone != iSisRegSession.Connect()) {
-        return found;
-    }
-    CleanupClosePushL(iSisRegSession);
-
-    RArray<TUid> packageIds;
-    CleanupClosePushL(packageIds);
-
-    iSisRegSession.InstalledUidsL(packageIds);
-
-    RPointerArray<HBufC> packageFiles;
-    CleanupClosePushL(packageFiles);
-
-    for (TInt i = 0; i < packageIds.Count() && !found; ++i) {
-        const TUid packageId = packageIds[i];
-        Swi::RSisRegistryEntry packageEntry;
-
-        // Get the array of file names in the current install package and look
-        // if there is one suggesting that the application was installed from
-        // the package.
-        if (KErrNone == packageEntry.Open(iSisRegSession, packageId)) {
-            CleanupClosePushL(packageEntry);
-            packageEntry.FilesL(packageFiles);
-            for (TInt pf = 0; pf < packageFiles.Count() && !found; ++pf) {
-                if (packageFiles[pf]->FindC(aAppFullName) == 0) {
-                    aPackageUid = packageId;
-                    found = ETrue;
-                }
-            }
-            packageFiles.ResetAndDestroy();
-            CleanupStack::PopAndDestroy(&packageEntry);
-        }
-    }
-
-    CleanupStack::PopAndDestroy(&packageFiles);
-    CleanupStack::PopAndDestroy(&packageIds);
-    CleanupStack::PopAndDestroy(&iSisRegSession);
-
-    return found;
-}
-
-// ---------------------------------------------------------------------------
-// CCaUninstallOperation::RunL
-// ---------------------------------------------------------------------------
-//
-void CCaUninstallOperation::RunL()
-{
-    iUninstaller.Close();
-}
-
-// ---------------------------------------------------------------------------
-// CCaUninstallOperation::DoCancel
-// ---------------------------------------------------------------------------
-//
-void CCaUninstallOperation::DoCancel()
-{
-    iUninstaller.CancelAsyncRequest(SwiUI::ERequestUninstall);
-}
-
-// ---------------------------------------------------------------------------
-// CCaUninstallOperation::RunError
-// ---------------------------------------------------------------------------
-//
-TInt CCaUninstallOperation::RunError(TInt /* aError */)
-{
-    return KErrNone;
-}