--- a/appinstall_plat/sifui_api/bwins/sifuiu.def Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstall_plat/sifui_api/bwins/sifuiu.def Fri Sep 03 17:01:40 2010 +0300
@@ -32,4 +32,5 @@
?ShowSingleSelectionL@CSifUi@@QAEHABVTDesC16@@ABVMDesC16Array@@AAH@Z @ 31 NONAME ; int CSifUi::ShowSingleSelectionL(class TDesC16 const &, class MDesC16Array const &, int &)
?ShowFailedL@CSifUi@@QAEXABVCSifUiErrorInfo@@@Z @ 32 NONAME ; void CSifUi::ShowFailedL(class CSifUiErrorInfo const &)
?NewLC@CSifUi@@SAPAV1@XZ @ 33 NONAME ; class CSifUi * CSifUi::NewLC(void)
+ ?CancelDialogs@CSifUi@@QAEXXZ @ 34 NONAME ; void CSifUi::CancelDialogs(void)
--- a/appinstall_plat/sifui_api/eabi/sifuiu.def Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstall_plat/sifui_api/eabi/sifuiu.def Fri Sep 03 17:01:40 2010 +0300
@@ -42,4 +42,5 @@
_ZTV15CSifUiErrorInfo @ 41 NONAME
_ZTV21CSifUiCertificateInfo @ 42 NONAME
_ZTV6CSifUi @ 43 NONAME
+ _ZN6CSifUi13CancelDialogsEv @ 44 NONAME
--- a/appinstall_plat/sifui_api/inc/sifui.h Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstall_plat/sifui_api/inc/sifui.h Fri Sep 03 17:01:40 2010 +0300
@@ -263,6 +263,11 @@
IMPORT_C TBool ShowSelectOptionsL( const MDesCArray& aSelectableItems,
RArray<TInt>& aSelectedIndexes );
+ /**
+ * Closes dialogs immediately and resets the CSifUi object.
+ */
+ IMPORT_C void CancelDialogs();
+
//=================================================
// DEPRECATED METHODS
--- a/appinstall_plat/sifui_api/inc/sifuiprivate.h Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstall_plat/sifui_api/inc/sifuiprivate.h Fri Sep 03 17:01:40 2010 +0300
@@ -62,6 +62,7 @@
TInt ShowSelectLanguageL( const RArray<TLanguage>& aLanguages );
TBool ShowSelectOptionsL( const MDesCArray& aSelectableItems,
RArray<TInt>& aSelectedIndexes );
+ void CancelDialogs();
protected: // from CActive
void DoCancel();
--- a/appinstall_plat/sifui_api/src/sifui.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstall_plat/sifui_api/src/sifui.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -183,6 +183,15 @@
return iPrivate->ShowSelectOptionsL( aSelectableItems, aSelectedIndexes );
}
+// ---------------------------------------------------------------------------
+// CSifUi::CancelDialogs()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CSifUi::CancelDialogs()
+ {
+ iPrivate->CancelDialogs();
+ }
+
// ---------------------------------------------------------------------------
// DEPRECATED: CSifUi::ShowFailedL()
--- a/appinstall_plat/sifui_api/src/sifuiprivate.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstall_plat/sifui_api/src/sifuiprivate.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -364,6 +364,16 @@
}
// ---------------------------------------------------------------------------
+// CSifUiPrivate::ShowSelectOptionsL()
+// ---------------------------------------------------------------------------
+//
+void CSifUiPrivate::CancelDialogs()
+ {
+ Cancel();
+ ClearParams();
+ }
+
+// ---------------------------------------------------------------------------
// CSifUiPrivate::DoCancel()
// ---------------------------------------------------------------------------
//
@@ -374,6 +384,7 @@
{
iDeviceDialog->Cancel(); // Closes the device dialog.
}
+ iDialogReturnValue = KErrCancel;
// Cancelled device dialog does not call DeviceDialogClosed() hence have
// to complete the request now. CActive::Cancel() waits until the request
--- a/appinstaller/AppinstUi/Daemon/Inc/daemonbehaviour.h Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Inc/daemonbehaviour.h Fri Sep 03 17:01:40 2010 +0300
@@ -27,6 +27,7 @@
#include "daemoninstaller.h"
#include "programstatus.h" //For uninstaller
#include "swidaemonplugin.h" //For SWI plugin support
+#include "sisregistrywritablesession.h"
class CSwiDaemonPlugin;
@@ -141,7 +142,10 @@
// Contains inserted drives.
RArray<TInt> iDriveArray;
// General program status. Note this do not affect to plug-in.
- TInt iGeneralProcessStatus; //For uninstaller
+ TInt iGeneralProcessStatus; //For uninstaller
+
+ Swi::RSisRegistryWritableSession iRegistrySession;
+ TBool iRegSessionConnected;
};
} // namespace Swi
--- a/appinstaller/AppinstUi/Daemon/Src/SilentLauncher.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/SilentLauncher.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -44,51 +44,29 @@
//
void CSilentLauncher::ConstructL()
{
- iConnected = EFalse;
-
+ iConnected = EFalse;
iSifOptions = Usif::COpaqueNamedParams::NewL();
iSifResults = Usif::COpaqueNamedParams::NewL();
- // Set needed parameters for silent install.
- FLOG( _L("Daemon: CSilentLauncher::ConstructL: InstallSilently") );
+ // Set needed parameters for silent install.
+ FLOG( _L("Daemon: CSilentLauncher::ConstructL: InstallSilently: ETrue") );
+ // Note InstallSilently is not a policy so use boolean ETure.
iSifOptions->AddIntL( Usif::KSifInParam_InstallSilently, ETrue );
- iSifOptions->AddIntL( Usif::KSifInParam_PerformOCSP, EFalse );
+ iSifOptions->AddIntL( Usif::KSifInParam_PerformOCSP, Usif::ENotAllowed );
// Note if upgrade is allowed, see NeedsInstallingL function.
- iSifOptions->AddIntL( Usif::KSifInParam_AllowUpgrade, EFalse );
- iSifOptions->AddIntL( Usif::KSifInParam_AllowUntrusted, EFalse );
- iSifOptions->AddIntL( Usif::KSifInParam_GrantCapabilities, EFalse );
+ iSifOptions->AddIntL( Usif::KSifInParam_AllowUpgrade, Usif::ENotAllowed );
+ iSifOptions->AddIntL( Usif::KSifInParam_AllowUntrusted, Usif::ENotAllowed );
+ iSifOptions->AddIntL( Usif::KSifInParam_GrantCapabilities, Usif::ENotAllowed );
// Defined for the install.
- iSifOptions->AddIntL( Usif::KSifInParam_InstallOptionalItems, ETrue );
- iSifOptions->AddIntL( Usif::KSifInParam_IgnoreOCSPWarnings, ETrue );
- iSifOptions->AddIntL( Usif::KSifInParam_AllowAppShutdown, ETrue );
- iSifOptions->AddIntL( Usif::KSifInParam_AllowDownload, ETrue );
- iSifOptions->AddIntL( Usif::KSifInParam_AllowOverwrite, ETrue );
- iSifOptions->AddIntL( Usif::KSifInParam_AllowOverwrite, ETrue );
-
+ iSifOptions->AddIntL( Usif::KSifInParam_InstallOptionalItems, Usif::EAllowed );
+ iSifOptions->AddIntL( Usif::KSifInParam_IgnoreOCSPWarnings, Usif::EAllowed );
+ iSifOptions->AddIntL( Usif::KSifInParam_AllowAppShutdown, Usif::EAllowed );
+ iSifOptions->AddIntL( Usif::KSifInParam_AllowDownload, Usif::EAllowed );
+ iSifOptions->AddIntL( Usif::KSifInParam_AllowOverwrite, Usif::EAllowed );
+
// TODO: is this defined in USIF?
- //iSifOptions->AddIntL( Usif::KSifInParam_Languages, NULL );
-// TODO: Not supported anymore after wk18, do we have some other param for this.
- //iSifOptions->AddIntL( Usif::KSifInParam_DisplayPackageInfo, ETrue );
-
-// TODO: remove old params.
- /*
- // Old swinstdefs.inl defines for install.
- iUpgrade( EPolicyAllowed ),
- iOptionalItems( EPolicyAllowed ),
- iOCSP( EPolicyAllowed ),
- iIgnoreOCSPWarnings( EPolicyAllowed ),
- iUntrusted( EPolicyNotAllowed ),
- iPackageInfo( EPolicyAllowed ),
- iCapabilities( EPolicyAllowed ),
- iKillApp( EPolicyAllowed ),
- iDownload( EPolicyAllowed ),
- iOverwrite( EPolicyAllowed ),
- iDrive( 'C' ),
- iLang( ELangNone ),
- iUsePhoneLang( ETrue ),
- iUpgradeData( EPolicyAllowed )
- */
+ //iSifOptions->AddIntL( Usif::KSifInParam_Languages, NULL );
}
// -----------------------------------------------------------------------------
@@ -143,16 +121,12 @@
}
// Set drive for installer.
-// delete iDrive
-// iDrive = NULL;
-// iDrive = HBufC::NewLC( 8 );
-// TPtr drivePtr = iDrive->Des();
-//
-// TInt driveNumber = 0;
-// TDriveInfo driveInfo;
-// aFileHandle.Drive( driveNumber, driveInfo );
-// TODO: how is this used? Is this drive letter?
-// iSifOptions->AddStringL( Usif::KSifInParam_Drive , *drive );
+ TInt driveNumber = 0;
+ TDriveInfo driveInfo;
+ aFileHandle.Drive( driveNumber, driveInfo );
+ FLOG_1( _L("Daemon: Drive number = %d"), driveNumber );
+// TODO: Use TUint array for drive numbers when plugin does support it.
+ iSifOptions->AddIntL( Usif::KSifInParam_Drive, driveNumber );
FLOG( _L("Daemon: Launch install") );
iSWInstallerFW.Install( aFileHandle,
--- a/appinstaller/AppinstUi/Daemon/Src/daemonbehaviour.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/daemonbehaviour.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -65,7 +65,9 @@
// For uninstaller
iSisInstaller = CSisInstaller::NewL( this, aMainStatus );
// Create plugin
- TRAP_IGNORE( iSwiDaemonPlugin = CSwiDaemonPlugin::NewL() );
+ TRAP_IGNORE( iSwiDaemonPlugin = CSwiDaemonPlugin::NewL() );
+
+ iRegSessionConnected = EFalse;
}
// -----------------------------------------------------------------------
@@ -82,7 +84,12 @@
delete iSisInstaller;
iSisInstaller = NULL;
iFs.Close();
- iDriveArray.Close();
+ iDriveArray.Close();
+
+ if ( iRegSessionConnected )
+ {
+ iRegistrySession.Close();
+ }
}
// -----------------------------------------------------------------------
@@ -102,12 +109,13 @@
void CDaemonBehaviour::MediaChangeL(TInt aDrive, TChangeType aChangeType)
{
FLOG_1( _L("Daemon: MediaChangeL: Media change %d"), aDrive );
- RSisRegistryWritableSession registrySession;
-
- User::LeaveIfError( registrySession.Connect() );
- CleanupClosePushL( registrySession );
-
-
+
+ if ( !iRegSessionConnected )
+ {
+ User::LeaveIfError( iRegistrySession.Connect() );
+ iRegSessionConnected = ETrue;
+ }
+
if ( aChangeType==EMediaInserted )
{
FLOG( _L("Daemon: MediaChangeL: Media inserted") );
@@ -119,7 +127,7 @@
// We need call sis registry since this call will
// activate sis registry to clean uninstalled components
// from inserted media.
- registrySession.AddDriveL( aDrive );
+ iRegistrySession.AddDriveL( aDrive );
// Scan directory on the card and run pre-installed through SWIS
FLOG( _L("Daemon: MediaChangeL: Process preinstalled files") );
@@ -185,8 +193,9 @@
}
}
}
-
- CleanupStack::PopAndDestroy(®istrySession);
+
+ iRegistrySession.Close();
+ iRegSessionConnected = EFalse;
}
// -----------------------------------------------------------------------
@@ -475,6 +484,22 @@
// Check if component or part of it is in the media.
if ( isInTargetDrive )
{
+ // Update SCR status for the component. Note SCR
+ // needs to be updated because AppArc will check
+ // status from SCR.
+ FLOG( _L("Daemon: Set component status to SCR") );
+
+ if ( aChangeType == EMediaInserted )
+ {
+ FLOG( _L("Daemon: Set component presence = TRUE") );
+ iRegistrySession.SetComponentPresenceL( aComponentId, ETrue );
+ }
+ else if ( aChangeType == EMediaRemoved )
+ {
+ FLOG( _L("Daemon: Set component presence = FALSE") );
+ iRegistrySession.SetComponentPresenceL( aComponentId, EFalse );
+ }
+
// We need to update applications status to AppArc when
// there is some media change. AppArc needs application
// UID (not package UID) so we need to get all app. UIDs
@@ -510,23 +535,7 @@
aAppInfoArray.Append( appInfo );
}
- CleanupStack::PopAndDestroy(&appUidArray);
-// Set do not work, it will leave.
-/*
- FLOG( _L("Daemon: Set component status to SCR") );
- // Update component flag to SCR.
- if ( aChangeType == EMediaInserted )
- {
- FLOG( _L("Daemon: Set component present = TRUE") );
- TRAP( err, aScrServer.SetIsComponentPresentL( aComponentId, ETrue ) );
- }
- else if ( aChangeType==EMediaRemoved )
- {
- FLOG( _L("Daemon: Set component present = FALSE") );
- TRAP( err, aScrServer.SetIsComponentPresentL( aComponentId, EFalse ) );
- }
- FLOG_1( _L("Daemon: SetIsComponentPresentL TRAP err = %d"), err );
-*/
+ CleanupStack::PopAndDestroy(&appUidArray);
} // if isInTargetDrive
} // if err
--- a/appinstaller/AppinstUi/Daemon/Src/silentuninstaller.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/Daemon/Src/silentuninstaller.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -46,8 +46,8 @@
iSifResults = Usif::COpaqueNamedParams::NewL();
// Set parameters for silent uninstall.
iSifOptions->AddIntL( Usif::KSifInParam_InstallSilently, ETrue );
- iSifOptions->AddIntL( Usif::KSifInParam_AllowAppShutdown, ETrue );
- iSifOptions->AddIntL( Usif::KSifInParam_AllowAppBreakDependency, EFalse );
+ iSifOptions->AddIntL( Usif::KSifInParam_AllowAppShutdown, Usif::EAllowed );
+ iSifOptions->AddIntL( Usif::KSifInParam_AllowAppBreakDependency, Usif::ENotAllowed );
}
--- a/appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/group/sisxsifplugin.mmp Fri Sep 03 17:01:40 2010 +0300
@@ -61,6 +61,7 @@
LIBRARY x509.lib // TValidationStatus
LIBRARY centralrepository.lib // CRepository
LIBRARY HbWidgets.lib // CHbDeviceMessageBoxSymbian
+LIBRARY HbCore.lib // HbTextResolverSymbian
LIBRARY syslangutil.lib // GetInstalledLanguages
SMPSAFE
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifplugininstallparams.h Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifplugininstallparams.h Fri Sep 03 17:01:40 2010 +0300
@@ -36,8 +36,8 @@
public: // new functions
TBool IsSilentMode() const;
TBool IsInstallInactive() const;
- TUint Drive() const;
- TLanguage Language() const;
+ const RArray<TUint>& Drives() const;
+ const RArray<TLanguage>& Languages() const;
const TDesC& OCSPUrl() const;
TSifPolicy PerformOCSP() const;
TSifPolicy IgnoreOCSPWarnings() const;
@@ -61,12 +61,14 @@
TSifPolicy& aPolicy, const TSifPolicy& aDefault );
void GetStringParamL( const COpaqueNamedParams& aParams, const TDesC& aParamName,
HBufC*& aBuf );
+ void DoProcessDriveParamL( const COpaqueNamedParams& aParams );
+ void DoProcessLangParamL( const COpaqueNamedParams& aParams );
private: // data
TBool iUseSilentMode;
TBool iIsInstallInactive;
- TUint iDrive;
- TLanguage iLanguage;
+ RArray<TUint> iDrives;
+ RArray<TLanguage> iLanguages;
HBufC* iOCSPUrl;
TSifPolicy iPerformOCSP;
TSifPolicy iIgnoreOCSPWarnings;
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandler.h Fri Sep 03 17:01:40 2010 +0300
@@ -91,6 +91,7 @@
void DisplayPreparingInstallL( const TDesC& aFileName );
void DisplayCompleteL();
void DisplayFailedL( const CSisxSifPluginErrorHandler& aError );
+ void CancelDialogs();
public: // new functions
void SetDriveSelectionRequired( TBool aIsRequired );
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlerbase.h Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlerbase.h Fri Sep 03 17:01:40 2010 +0300
@@ -46,6 +46,7 @@
virtual void DisplayPreparingInstallL( const TDesC& aFileName ) = 0;
virtual void DisplayCompleteL() = 0;
virtual void DisplayFailedL( const CSisxSifPluginErrorHandler& aError ) = 0;
+ virtual void CancelDialogs() = 0;
public: // new functions
void SetInstallParamsL( const CSisxSifPluginInstallParams& aInstallParams );
@@ -54,8 +55,8 @@
TBool IsOcspMandatoryL() const;
// functions to publish operation progress
- void PublishStartL( const CComponentInfo::CNode& aRootNode );
- void PublishStartL( const CComponentEntry& aEntry );
+ void PublishStartL( const CComponentInfo::CNode& aRootNode, TSifOperationPhase aPhase );
+ void PublishStartL( const CComponentEntry& aEntry, TSifOperationPhase aPhase );
void PublishProgressL( TSifOperationSubPhase aSubPhase );
void PublishCompletionL();
@@ -66,6 +67,10 @@
void SetOcspErrorL( Swi::TRevocationDialogMessage aMessage );
TBool ShowQuestionL( const TDesC& aText ) const;
void ShowQuestionWithContinueL( const TDesC& aText ) const;
+ static TBool CompareDriveLetters( const TChar& aDriveFirst, const TChar& aDriveSecond );
+
+ private: // new functions
+ void SetLocalisedErrorMessageText( const TDesC& aLogicalName );
protected: // data
RFs& iFs;
--- a/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlersilent.h Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/inc/sisxsifpluginuihandlersilent.h Fri Sep 03 17:01:40 2010 +0300
@@ -86,6 +86,7 @@
void DisplayPreparingInstallL( const TDesC& aFileName );
void DisplayCompleteL();
void DisplayFailedL( const CSisxSifPluginErrorHandler& aError );
+ void CancelDialogs();
protected: // new functions
CSisxSifPluginUiHandlerSilent( RFs& aFs, CSisxSifPluginErrorHandler& aErrorHandler );
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginactiveimpl.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -104,13 +104,14 @@
if( iClientStatus )
{
+ if( iUiHandler )
+ {
+ iUiHandler->CancelDialogs();
+ }
if( iAsyncLauncher )
{
iAsyncLauncher->CancelOperation();
- delete iAsyncLauncher;
- iAsyncLauncher = NULL;
}
-
CompleteClientRequest( KErrCancel );
}
}
@@ -544,7 +545,6 @@
User::RequestComplete( iClientStatus, aResult );
iClientStatus = NULL;
}
- __ASSERT_DEBUG( !IsActive(), Panic( ESisxSifInternalError ) );
iOperation = ENoOperation;
iPhase = ENotActive;
}
@@ -637,7 +637,7 @@
TUid uid;
CComponentEntry *entry = CComponentEntry::NewLC();
GetComponentAndUidL( aComponentId, *entry, uid );
- iUiHandler->PublishStartL( *entry );
+ iUiHandler->PublishStartL( *entry, EUninstalling );
CleanupStack::PopAndDestroy( entry );
iAsyncLauncher->UninstallL( *iUiHandler, uid, iStatus );
@@ -896,7 +896,7 @@
TInt maxInstalledSize = rootNode.MaxInstalledSize();
iUiHandler->SetMaxInstalledSize( maxInstalledSize );
- iUiHandler->PublishStartL( rootNode );
+ iUiHandler->PublishStartL( rootNode, EInstalling );
UpdateInstallPrefsForPerformingOcspL();
FillDeviceSupportedLanguagesL();
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifplugininstallparams.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifplugininstallparams.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -55,6 +55,8 @@
//
CSisxSifPluginInstallParams::~CSisxSifPluginInstallParams()
{
+ iDrives.Close();
+ iLanguages.Close();
delete iOCSPUrl;
}
@@ -77,21 +79,21 @@
}
// ---------------------------------------------------------------------------
-// CSisxSifPluginInstallParams::Drive()
+// CSisxSifPluginInstallParams::Drives()
// ---------------------------------------------------------------------------
//
-TUint CSisxSifPluginInstallParams::Drive() const
+const RArray<TUint>& CSisxSifPluginInstallParams::Drives() const
{
- return iDrive;
+ return iDrives;
}
// ---------------------------------------------------------------------------
-// CSisxSifPluginInstallParams::Language()
+// CSisxSifPluginInstallParams::Languages()
// ---------------------------------------------------------------------------
//
-TLanguage CSisxSifPluginInstallParams::Language() const
+const RArray<TLanguage>& CSisxSifPluginInstallParams::Languages() const
{
- return iLanguage;
+ return iLanguages;
}
// ---------------------------------------------------------------------------
@@ -222,10 +224,13 @@
{
iUseSilentMode = GetIntParam( aParams, KSifInParam_InstallSilently, EFalse );
iIsInstallInactive = GetIntParam( aParams, KSifInParam_InstallInactive, EFalse );
- // TODO: change drive and language params as arrays when available
- iDrive = static_cast<TUint>( GetIntParam( aParams, KSifInParam_Drive, EDriveC ) );
- iLanguage = static_cast<TLanguage>( GetIntParam( aParams, KSifInParam_Languages,
- ELangNone ) );
+ TRAPD( err, DoProcessDriveParamL( aParams ) );
+ if( err )
+ {
+ TInt defaultDrive = GetIntParam( aParams, KSifInParam_Drive, EDriveC );
+ iDrives.AppendL( defaultDrive );
+ }
+ TRAP_IGNORE( DoProcessLangParamL( aParams ) ); // no default language
GetStringParamL( aParams, KSifInParam_OCSPUrl, iOCSPUrl );
GetPolicyParam( aParams, KSifInParam_PerformOCSP, iPerformOCSP, EAllowed );
GetPolicyParam( aParams, KSifInParam_IgnoreOCSPWarnings, iIgnoreOCSPWarnings, EAllowed );
@@ -249,8 +254,14 @@
{
iUseSilentMode = aParams.iUseSilentMode;
iIsInstallInactive = aParams.iIsInstallInactive;
- iDrive = aParams.iDrive;
- iLanguage = aParams.iLanguage;
+ for( TInt index = 0; index < aParams.iDrives.Count(); index++ )
+ {
+ iDrives.AppendL( aParams.iDrives[ index ] );
+ }
+ for( TInt index = 0; index < aParams.iLanguages.Count(); index++ )
+ {
+ iLanguages.AppendL( aParams.iLanguages[ index ] );
+ }
if( aParams.iOCSPUrl )
{
iOCSPUrl = aParams.iOCSPUrl->AllocL();
@@ -320,3 +331,31 @@
}
}
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::DoProcessDriveParamL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginInstallParams::DoProcessDriveParamL( const COpaqueNamedParams& aParams )
+ {
+ const RArray<TInt>& driveArray = aParams.IntArrayByNameL( KSifInParam_Drive );
+ iDrives.Reset();
+ for( TInt index = 0; index < driveArray.Count(); index++ )
+ {
+ iDrives.AppendL( driveArray[ index ] );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginInstallParams::DoProcessLangParamL()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginInstallParams::DoProcessLangParamL( const COpaqueNamedParams& aParams )
+ {
+ const RArray<TInt>& langArray = aParams.IntArrayByNameL( KSifInParam_Languages );
+ iLanguages.Reset();
+ for( TInt index = 0; index < langArray.Count(); index++ )
+ {
+ iLanguages.AppendL( static_cast<TLanguage>( langArray[ index ] ) );
+ }
+ }
+
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandler.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -188,7 +188,7 @@
const RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/ )
{
FLOG( _L("CSisxSifPluginUiHandler::DisplayInstallL") );
- iOperationPhase = EInstalling;
+ ASSERT( iOperationPhase == EInstalling );
return ETrue;
}
@@ -226,15 +226,11 @@
{
FLOG( _L("CSisxSifPluginUiHandler::DisplayDriveL") );
- TInt err = KErrNone;
TInt driveNumber = EDriveC;
- if( iSifUi )
+ TInt err = iSifUi->SelectedDrive( driveNumber );
+ if( err )
{
- err = iSifUi->SelectedDrive( driveNumber );
- if( err )
- {
- FLOG_1( _L("CSisxSifPluginUiHandler::DisplayDriveL; SelectedDrive err=%d"), err );
- }
+ FLOG_1( _L("CSisxSifPluginUiHandler::DisplayDriveL; SelectedDrive err=%d"), err );
}
TChar driveLetter = 'C';
@@ -260,7 +256,6 @@
const Swi::CAppInfo& /*aExistingAppInfo*/ )
{
FLOG( _L("CSisxSifPluginUiHandler::DisplayUpgradeL") );
-
return ETrue;
}
@@ -302,47 +297,48 @@
Swi::TInstallEvent aEvent, TInt aValue, const TDesC& /*aDes*/ )
{
FLOG_2( _L("CSisxSifPluginUiHandler::HandleInstallEventL: aEvent %d, aValue %d"), aEvent, aValue );
+ TBool okToContinue = EFalse;
- if( iSifUi->IsCancelled() )
+ if( !iSifUi->IsCancelled() )
{
- return EFalse;
+ okToContinue = ETrue;
+
+ switch( aEvent )
+ {
+ case Swi::EEventSetProgressBarFinalValue:
+ iProgressBarFinalValue = aValue;
+ if( iOperationPhase == EInstalling )
+ {
+ ShowProgressL( aAppInfo, iProgressBarFinalValue, CSifUi::EInstalling );
+ }
+ break;
+
+ case Swi::EEventUpdateProgressBar:
+ if( iOperationPhase == EInstalling )
+ {
+ iSifUi->IncreaseProgressBarValueL( aValue );
+ }
+ iProgressBarCurrentValue += aValue;
+ PublishProgressL( EFileOperation );
+ break;
+
+ case Swi::EEventDevCert:
+ // TODO: show "developer certificate" warning note
+ break;
+
+ case Swi::EEventOcspCheckEnd:
+ case Swi::EEventAbortedInstall:
+ case Swi::EEventAbortedUnInstall:
+ case Swi::EEventCompletedInstall:
+ case Swi::EEventCompletedUnInstall:
+ case Swi::EEventCompletedNoMessage:
+ case Swi::EEventLeave:
+ default:
+ break;
+ }
}
- switch( aEvent )
- {
- case Swi::EEventSetProgressBarFinalValue:
- iProgressBarFinalValue = aValue;
- if( iOperationPhase == EInstalling )
- {
- ShowProgressL( aAppInfo, iProgressBarFinalValue, CSifUi::EInstalling );
- }
- break;
-
- case Swi::EEventUpdateProgressBar:
- if( iOperationPhase == EInstalling )
- {
- iSifUi->IncreaseProgressBarValueL( aValue );
- }
- iProgressBarCurrentValue += aValue;
- PublishProgressL( EFileOperation );
- break;
-
- case Swi::EEventDevCert:
- // TODO: show "developer certificate" warning note
- break;
-
- case Swi::EEventOcspCheckEnd:
- case Swi::EEventAbortedInstall:
- case Swi::EEventAbortedUnInstall:
- case Swi::EEventCompletedInstall:
- case Swi::EEventCompletedUnInstall:
- case Swi::EEventCompletedNoMessage:
- case Swi::EEventLeave:
- default:
- break;
- }
-
- return ETrue;
+ return okToContinue;
}
// ---------------------------------------------------------------------------
@@ -461,7 +457,7 @@
const Swi::CAppInfo& /*aInstalledAppInfo*/, const TDesC& /*aFileName*/ )
{
FLOG( _L("CSisxSifPluginUiHandler::DisplayCannotOverwriteFileL") );
-
+ // TODO: implement
}
// ---------------------------------------------------------------------------
@@ -473,7 +469,7 @@
TVersion /*aWantedVersionTo*/, TVersion /*aInstalledVersion*/ )
{
FLOG( _L("CSisxSifPluginUiHandler::DisplayMissingDependencyL") );
-
+ // TODO: implement
return ETrue;
}
@@ -484,8 +480,7 @@
TBool CSisxSifPluginUiHandler::DisplayUninstallL( const Swi::CAppInfo& /*aAppInfo*/ )
{
FLOG( _L("CSisxSifPluginUiHandler::DisplayUninstallL") );
-
- iOperationPhase = EUninstalling;
+ ASSERT( iOperationPhase == EUninstalling );
return ETrue; // uninstall is always silent
}
@@ -506,7 +501,6 @@
void CSisxSifPluginUiHandler::DisplayCompleteL()
{
FLOG( _L("CSisxSifPluginUiHandler::DisplayCompleteL") );
-
iSifUi->ShowCompleteL();
}
@@ -517,7 +511,6 @@
void CSisxSifPluginUiHandler::DisplayFailedL( const CSisxSifPluginErrorHandler& aError )
{
FLOG_1( _L("CSisxSifPluginUiHandler::DisplayFailedL, error code %d"), aError.ErrorCode() );
-
CSifUiErrorInfo* errorInfo = CSifUiErrorInfo::NewLC( aError.ErrorCategory(),
aError.ErrorCode(), aError.ExtendedErrorCode(), aError.ErrorMessage(),
aError.ErrorMessageDetails() );
@@ -526,6 +519,15 @@
}
// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandler::CancelDialogs()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandler::CancelDialogs()
+ {
+ iSifUi->CancelDialogs();
+ }
+
+// ---------------------------------------------------------------------------
// CSisxSifPluginUiHandler::CSisxSifPluginUiHandler()
// ---------------------------------------------------------------------------
//
@@ -577,6 +579,7 @@
}
}
}
+
iSifUi->SetMemorySelectionL( iSelectableDrives );
}
@@ -589,7 +592,6 @@
RPointerArray<CPKIXValidationResultBase>& aPkixResults )
{
ASSERT( aCertificates.Count() == aPkixResults.Count() );
-
RPointerArray<CSifUiCertificateInfo> certificates;
CleanupResetAndDestroyPushL( certificates );
@@ -604,6 +606,7 @@
}
}
iSifUi->SetCertificateInfoL( certificates );
+
CleanupStack::PopAndDestroy( &certificates );
}
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlerbase.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlerbase.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -22,10 +22,29 @@
#include <centralrepository.h> // CRepository
#include <SWInstallerInternalCRKeys.h> // KCRUidSWInstallerSettings
#include <hb/hbwidgets/hbdevicemessageboxsymbian.h> // CHbDeviceMessageBoxSymbian
+#include <hb/hbcore/hbtextresolversymbian.h> // HbTextResolverSymbian
#include <usif/scr/screntries.h> // CComponentEntry
using namespace Usif;
+_LIT( KTextResolverPath, "z:/resource/qt/translations/" );
+_LIT( KSifUiTranslationFile, "sifuidevicedialogplugin" );
+_LIT( KCommonButtonContinue, "txt_common_button_continue" );
+
+_LIT( KMemoryFull, "txt_error_info_memory_full" );
+_LIT( KUnexpectedError, "txt_error_info_an_unexpected_error_occurred" );
+_LIT( KNotEnoughSpace, "txt_error_info_there_is_not_enough_space_currently" );
+_LIT( KNetworkUnavailable, "txt_error_info_network_is_unavailable_currently" );
+_LIT( KInstallerBusy , "txt_error_info_installer_is_busy_currently" );
+_LIT( KCorruptedPackage , "txt_error_info_installation_package_is_corrupted" );
+_LIT( KNotCompatible , "txt_error_info_application_is_not_compatible_with" );
+_LIT( KSecurityIssue , "txt_error_info_there_is_a_security_issue_with_this" );
+_LIT( KNotInstalled , "txt_error_info_application_not_installed" );
+_LIT( KNotDeleted , "txt_error_info_application_not_deleted" );
+_LIT( KCannotBeDeleted , "txt_error_info_application_cannot_be_deleted" );
+
+const TInt KDefaultTimeout = 6000; // milliseconds
+
// ======== MEMBER FUNCTIONS ========
@@ -37,6 +56,7 @@
CSisxSifPluginErrorHandler& aErrorHandler ) : iFs( aFs ),
iErrorHandler( aErrorHandler )
{
+ HbTextResolverSymbian::Init( KSifUiTranslationFile, KTextResolverPath );
}
// ---------------------------------------------------------------------------
@@ -100,8 +120,11 @@
// CSisxSifPluginUiHandlerBase::PublishStartL()
// ---------------------------------------------------------------------------
//
-void CSisxSifPluginUiHandlerBase::PublishStartL( const CComponentInfo::CNode& aRootNode )
+void CSisxSifPluginUiHandlerBase::PublishStartL( const CComponentInfo::CNode& aRootNode,
+ TSifOperationPhase aPhase )
{
+ iOperationPhase = aPhase;
+
RPointerArray<HBufC> appNames;
CleanupResetAndDestroyPushL( appNames );
RPointerArray<HBufC> appIcons;
@@ -142,8 +165,11 @@
// CSisxSifPluginUiHandlerBase::PublishStartL()
// ---------------------------------------------------------------------------
//
-void CSisxSifPluginUiHandlerBase::PublishStartL( const CComponentEntry& aEntry )
+void CSisxSifPluginUiHandlerBase::PublishStartL( const CComponentEntry& aEntry,
+ TSifOperationPhase aPhase )
{
+ iOperationPhase = aPhase;
+
RPointerArray<HBufC> appNames;
CleanupResetAndDestroyPushL( appNames );
RPointerArray<HBufC> appIcons;
@@ -205,57 +231,45 @@
iErrorHandler.SetErrorCode( aErrorCode );
iErrorHandler.SetExtendedErrorCode( aExtErrorCode );
- // TODO: localized UI strings needed
switch( iErrorHandler.ErrorCategory() )
{
case ELowMemory:
- // txt_error_info_there_is_not_enough_memory_currentl
- iErrorHandler.SetErrorMessage( _L("There is not enough memory currently.") );
+ SetLocalisedErrorMessageText( KMemoryFull );
break;
case ELowDiskSpace:
- // txt_error_info_there_is_not_enough_space_currently
- iErrorHandler.SetErrorMessage( _L("There is not enough space currently in this drive.") );
+ SetLocalisedErrorMessageText( KNotEnoughSpace );
break;
case ENetworkUnavailable:
- // txt_error_info_network_is_unavailable_currently
- iErrorHandler.SetErrorMessage( _L("Network is unavailable currently.") );
+ SetLocalisedErrorMessageText( KNetworkUnavailable );
break;
case EInstallerBusy:
- // txt_error_info_installer_is_busy_currently
- iErrorHandler.SetErrorMessage( _L("Installer is busy currently.") );
+ SetLocalisedErrorMessageText( KInstallerBusy );
break;
case ECorruptedPackage:
- // txt_error_info_installation_package_is_corrupted
- iErrorHandler.SetErrorMessage( _L("Installation package is corrupted. You may want to try again.") );
+ SetLocalisedErrorMessageText( KCorruptedPackage );
break;
case EApplicationNotCompatible:
- // txt_error_info_application_is_not_compatible_with
- iErrorHandler.SetErrorMessage( _L("Application is not compatible with this device.") );
+ SetLocalisedErrorMessageText( KNotCompatible );
break;
case ESecurityError:
- // txt_error_info_there_is_a_security_issue_with_this
- iErrorHandler.SetErrorMessage( _L("There is a security issue with this application.") );
+ SetLocalisedErrorMessageText( KSecurityIssue );
break;
case EUnexpectedError:
case EUnknown:
- // txt_error_info_an_unexpected_error_occurred
- iErrorHandler.SetErrorMessage( _L("An unexpected error occurred.") );
+ SetLocalisedErrorMessageText( KUnexpectedError );
break;
case EUserCancelled:
if( iOperationPhase == EInstalling )
{
- // txt_error_info_application_not_installed
- iErrorHandler.SetErrorMessage( _L("Application not installed.") );
+ SetLocalisedErrorMessageText( KNotInstalled );
}
else
{
- // txt_error_info_application_not_deleted
- iErrorHandler.SetErrorMessage( _L("Application not deleted. ") );
+ SetLocalisedErrorMessageText( KNotDeleted );
}
break;
case EUninstallationBlocked:
- // txt_error_info_application_cannot_be_deleted
- iErrorHandler.SetErrorMessage( _L("Application cannot be deleted.") );
+ SetLocalisedErrorMessageText( KCannotBeDeleted );
break;
case ENone:
default:
@@ -418,7 +432,7 @@
CleanupStack::PushL( note );
note->SetTextL( aText );
- note->SetTimeout( 0 );
+ note->SetTimeout( KDefaultTimeout );
if( note->ExecL() == CHbDeviceMessageBoxSymbian::EAcceptButton )
{
questionAccepted = ETrue;
@@ -439,13 +453,35 @@
CleanupStack::PushL( note );
note->SetTextL( aText );
- note->SetTimeout( 0 );
+ note->SetTimeout( KDefaultTimeout );
note->SetButton( CHbDeviceMessageBoxSymbian::EAcceptButton, EFalse );
note->SetButton( CHbDeviceMessageBoxSymbian::ERejectButton, ETrue );
- // TODO: localized UI string needed
- note->SetButtonTextL( CHbDeviceMessageBoxSymbian::ERejectButton, _L("Continue") );
+ HBufC* contButton = HbTextResolverSymbian::LoadLC( KCommonButtonContinue );
+ note->SetButtonTextL( CHbDeviceMessageBoxSymbian::ERejectButton, contButton->Des() );
(void)note->ExecL();
+ CleanupStack::PopAndDestroy( contButton );
CleanupStack::PopAndDestroy( note );
}
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::CompareDriveLetters()
+// ---------------------------------------------------------------------------
+//
+TBool CSisxSifPluginUiHandlerBase::CompareDriveLetters( const TChar& aDriveFirst,
+ const TChar& aDriveSecond )
+ {
+ return( aDriveFirst.GetLowerCase() == aDriveSecond.GetLowerCase() );
+ }
+
+// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerBase::SetLocalisedErrorMessageText()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerBase::SetLocalisedErrorMessageText( const TDesC& aLogicalName )
+ {
+ HBufC* errorText = HbTextResolverSymbian::LoadLC( aLogicalName );
+ iErrorHandler.SetErrorMessage( errorText->Des() );
+ CleanupStack::PopAndDestroy( errorText );
+ }
+
--- a/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/src/sisxsifpluginuihandlersilent.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -228,7 +228,7 @@
const CApaMaskedBitmap* /*aLogo*/,
const RPointerArray<Swi::CCertificateInfo>& /*aCertificates*/ )
{
- iOperationPhase = EInstalling;
+ ASSERT( iOperationPhase == EInstalling );
return ETrue;
}
@@ -271,13 +271,16 @@
TInt languageCount = aLanguages.Count();
if( iInstallParams )
{
- TLanguage lang = iInstallParams->Language();
- TInt index = aLanguages.Find( lang );
- if( index >= 0 && index < languageCount )
- {
- languageIndex = index;
- found = ETrue;
- }
+ const RArray<TLanguage>& preferredLanguages = iInstallParams->Languages();
+ for( TInt prefIndex = 0; prefIndex < preferredLanguages.Count() && !found; prefIndex++ )
+ {
+ TInt selectedIndex = aLanguages.Find( preferredLanguages[ prefIndex ] );
+ if( selectedIndex >= 0 && selectedIndex < languageCount )
+ {
+ languageIndex = selectedIndex;
+ found = ETrue;
+ }
+ }
}
if( !found )
{
@@ -304,22 +307,26 @@
TInt driveCount = aDriveLetters.Count();
if( iInstallParams )
{
+ const RArray<TUint>& preferredDrives = iInstallParams->Drives();
TChar driveLetter = 0;
- RFs::DriveToChar( iInstallParams->Drive(), driveLetter );
- TInt index = aDriveLetters.Find( driveLetter );
- if( index >= 0 && index < driveCount )
- {
- if( aDriveSpaces[ index ] > aSize )
- {
- driveIndex = index;
- found = ETrue;
- }
- }
+ TIdentityRelation<TChar> relation(CompareDriveLetters);
+ for( TInt prefIndex = 0; prefIndex < preferredDrives.Count() && !found; prefIndex++ )
+ {
+ RFs::DriveToChar( preferredDrives[ prefIndex ], driveLetter );
+ TInt index = aDriveLetters.Find( driveLetter, relation );
+ if( index >= 0 && index < driveCount )
+ {
+ if( aDriveSpaces[ index ] > aSize )
+ {
+ driveIndex = index;
+ found = ETrue;
+ }
+ }
+ }
}
- // TODO: should there be some default drive?
if( !found )
{
- User::Leave( KErrNoMemory );
+ driveIndex = KErrNotFound;
}
return driveIndex;
}
@@ -342,6 +349,7 @@
case EUserConfirm:
case ENotAllowed:
default:
+ // TODO: SetError
break;
}
}
@@ -366,6 +374,7 @@
case EUserConfirm:
case ENotAllowed:
default:
+ // TODO: SetError
break;
}
}
@@ -468,6 +477,7 @@
case EUserConfirm:
case ENotAllowed:
default:
+ // TODO: SetError
break;
}
}
@@ -502,6 +512,7 @@
case EUserConfirm:
case ENotAllowed:
default:
+ // TODO: SetError
break;
}
}
@@ -548,6 +559,7 @@
case EUserConfirm:
case ENotAllowed:
default:
+ // TODO: SetError
break;
}
}
@@ -566,7 +578,7 @@
//
TBool CSisxSifPluginUiHandlerSilent::DisplayUninstallL( const Swi::CAppInfo& /*aAppInfo*/ )
{
- iOperationPhase = EUninstalling;
+ ASSERT( iOperationPhase == EUninstalling );
return ETrue;
}
@@ -599,6 +611,15 @@
}
// ---------------------------------------------------------------------------
+// CSisxSifPluginUiHandlerSilent::CancelDialogs()
+// ---------------------------------------------------------------------------
+//
+void CSisxSifPluginUiHandlerSilent::CancelDialogs()
+ {
+ // nothing to do
+ }
+
+// ---------------------------------------------------------------------------
// CSisxSifPluginUiHandlerSilent::CSisxSifPluginUiHandlerSilent()
// ---------------------------------------------------------------------------
//
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/activerunner_symbian.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -155,9 +155,23 @@
iResults = NULL;
iResults = Usif::COpaqueNamedParams::NewL();
+ RArray<TInt> driveArray;
+ CleanupClosePushL( driveArray );
+ RArray<TInt> languageArray;
+ CleanupClosePushL( languageArray );
+
if( aSilent )
{
iArguments->AddIntL( Usif::KSifInParam_InstallSilently, ETrue );
+
+ driveArray.AppendL( EDriveE );
+ driveArray.AppendL( EDriveC );
+ iArguments->AddIntArrayL( Usif::KSifInParam_Drive, driveArray );
+
+ languageArray.AppendL( ELangFinnish );
+ languageArray.AppendL( ELangSwedish );
+ languageArray.AppendL( ELangEnglish );
+ iArguments->AddIntArrayL( Usif::KSifInParam_Languages, languageArray );
}
if( aOcsp )
{
@@ -173,6 +187,9 @@
{
iSoftwareInstall.Install( fileName, *iArguments, *iResults, iStatus );
}
+
+ CleanupStack::PopAndDestroy( &languageArray );
+ CleanupStack::PopAndDestroy( &driveArray );
}
else
{
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -27,6 +27,7 @@
#include <hbmessagebox.h>
#include <QGraphicsLinearLayout>
#include <QDir>
+#include <QTimer>
#include <xqappmgr.h> // XQApplicationManager
#include <usif/scr/scr.h> // RSoftwareComponentRegistry
@@ -39,114 +40,25 @@
#define INSTALLS_PATH_5 "E:\\"
#define INSTALLS_PATH_6 "F:\\"
+const int KCancelInstallDelay = 30000; // milliseconds
+const int KCancelRemoveDelay = 5000; // milliseconds
+
TestInstaller::TestInstaller(int& argc, char* argv[]) : HbApplication(argc, argv),
mMainWindow(0), mInstallView(0), mRemoveView(0),
mUseSilentInstall(false), mUseSilentUninstall(false), mUseRFileInstall(false), mOcsp(false),
+ mCancelInstallShortly(false), mCancelRemoveShortly(false),
mInstallDirectories(0), mInstallableFiles(0), mRemovableApps(0),
mCurrentDirPath(), mCurrentFile(), mRunner(0)
{
mMainWindow = new HbMainWindow();
- // Install view
- mInstallView = new HbView();
- mInstallView->setTitle(tr("Test Installer"));
-
- QGraphicsLinearLayout *installLayout = new QGraphicsLinearLayout(Qt::Vertical);
-
- HbLabel *installTitle = new HbLabel(tr("Install:"));
- installLayout->addItem(installTitle);
-
- mInstallDirectories = new HbComboBox;
- mInstallDirectories->setEditable(false);
- QStringList dirList;
- getInstallDirs(dirList);
- mInstallDirectories->setItems(dirList);
- connect(mInstallDirectories, SIGNAL(currentIndexChanged(int)),
- this, SLOT(installableDirChanged(int)));
- installLayout->addItem(mInstallDirectories);
-
- mInstallableFiles = new HbComboBox;
- mInstallableFiles->setEditable(false);
- connect(mInstallableFiles, SIGNAL(currentIndexChanged(int)),
- this, SLOT(installableFileChanged(int)));
- installLayout->addItem(mInstallableFiles);
-
- QGraphicsLinearLayout *checkboxesLayout = new QGraphicsLinearLayout(Qt::Horizontal);
- HbCheckBox *silentInstallCheckBox = new HbCheckBox;
- silentInstallCheckBox->setText(tr("Silent"));
- connect(silentInstallCheckBox, SIGNAL(stateChanged(int)),
- this, SLOT(silentInstallCheckChanged(int)));
- checkboxesLayout->addItem(silentInstallCheckBox);
- HbCheckBox *rfileCheckBox = new HbCheckBox;
- rfileCheckBox->setText(tr("Use RFile"));
- connect(rfileCheckBox, SIGNAL(stateChanged(int)), this, SLOT(rfileCheckChanged(int)));
- checkboxesLayout->addItem(rfileCheckBox);
- HbCheckBox *ocspCheckBox = new HbCheckBox;
- ocspCheckBox->setText(tr("OCSP"));
- connect(ocspCheckBox, SIGNAL(stateChanged(int)), this, SLOT(ocspCheckChanged(int)));
- checkboxesLayout->addItem(ocspCheckBox);
- installLayout->addItem(checkboxesLayout);
- installLayout->addStretch();
-
- HbPushButton *installNew = new HbPushButton(tr("Install using new API"));
- installLayout->addItem(installNew);
- HbPushButton *installOld = new HbPushButton(tr("Install using old API"));
- installLayout->addItem(installOld);
- HbPushButton *launchApp = new HbPushButton(tr("Install by opening file"));
- installLayout->addItem(launchApp);
- HbPushButton *cancelInstall = new HbPushButton(tr("Cancel installing"));
- installLayout->addItem(cancelInstall);
- installLayout->addStretch();
- connect(installNew, SIGNAL(clicked()), this, SLOT(installUsingNewApi()));
- connect(installOld, SIGNAL(clicked()), this, SLOT(installUsingOldApi()));
- connect(launchApp, SIGNAL(clicked()), this, SLOT(installByOpeningFile()));
- connect(cancelInstall, SIGNAL(clicked()), this, SLOT(cancelInstalling()));
-
- HbToolBar *installToolBar = new HbToolBar();
- installToolBar->addAction(tr("RemoveView"), this, SLOT(removeViewActivated()));
- installToolBar->addAction(tr("Exit"), this, SLOT(closeApp()));
- mInstallView->setToolBar(installToolBar);
-
- mInstallView->setLayout(installLayout);
+ createInstallView();
mMainWindow->addView(mInstallView);
- // Remove view
- mRemoveView = new HbView();
- mRemoveView->setTitle(tr("Test Uninstaller"));
-
- QGraphicsLinearLayout *removeLayout = new QGraphicsLinearLayout(Qt::Vertical);
-
- HbLabel *uninstallTitle = new HbLabel(tr("Uninstall:"));
- removeLayout->addItem(uninstallTitle);
-
- mRemovableApps = new HbComboBox;
- mRemovableApps->setEditable(false);
- removeLayout->addItem(mRemovableApps);
-
- HbCheckBox *silentRemoveCheckBox = new HbCheckBox;
- silentRemoveCheckBox->setText(tr("Silent"));
- connect(silentRemoveCheckBox, SIGNAL(stateChanged(int)),
- this, SLOT(silentCheckChanged(int)));
- removeLayout->addItem(silentRemoveCheckBox);
- removeLayout->addStretch();
-
- HbPushButton *removeNew = new HbPushButton(tr("Remove using new API"));
- removeLayout->addItem(removeNew);
- HbPushButton *removeOld = new HbPushButton(tr("Remove using old API"));
- removeLayout->addItem(removeOld);
- removeLayout->addStretch();
- connect(removeNew, SIGNAL(clicked()), this, SLOT(removeUsingNewApi()));
- connect(removeOld, SIGNAL(clicked()), this, SLOT(removeUsingOldApi()));
-
- mRemoveView->setLayout(removeLayout);
+ createRemoveView();
mMainWindow->addView(mRemoveView);
- HbToolBar *removeToolBar = new HbToolBar();
- removeToolBar->addAction(tr("InstallView"), this, SLOT(installViewActivated()));
- removeToolBar->addAction(tr("Exit"), this, SLOT(closeApp()));
- mRemoveView->setToolBar(removeToolBar);
-
mMainWindow->setCurrentView(mInstallView);
mMainWindow->show();
@@ -196,6 +108,18 @@
mOcsp = (s == Qt::Checked);
}
+void TestInstaller::cancelInstallingChanged(int state)
+{
+ Qt::CheckState s = static_cast<Qt::CheckState>(state);
+ mCancelInstallShortly = (s == Qt::Checked);
+}
+
+void TestInstaller::cancelRemovingChanged(int state)
+{
+ Qt::CheckState s = static_cast<Qt::CheckState>(state);
+ mCancelRemoveShortly = (s == Qt::Checked);
+}
+
void TestInstaller::installableDirChanged(int /*index*/)
{
if (mInstallDirectories) {
@@ -232,17 +156,6 @@
}
}
-void TestInstaller::cancelInstalling()
-{
- if (mRunner) {
- delete mRunner;
- mRunner = 0;
- HbMessageBox::warning(tr("Running operation deleted"));
- } else {
- HbMessageBox::warning(tr("No operation running"));
- }
-}
-
void TestInstaller::removeUsingNewApi()
{
if (isFileSelected() && createRunner(true)) {
@@ -297,6 +210,132 @@
HbMessageBox::warning(tr("Open failed: %1: %2").arg(errorCode).arg(errorMsg));
}
+void TestInstaller::cancelInstalling()
+{
+ HbMessageBox::warning(tr("Timeout, cancelling"));
+ delete mRunner;
+ mRunner = 0;
+ HbMessageBox::warning(tr("Installing cancelled"));
+}
+
+void TestInstaller::cancelRemoving()
+{
+ HbMessageBox::warning(tr("Timeout, cancelling"));
+ delete mRunner;
+ mRunner = 0;
+ HbMessageBox::warning(tr("Removing cancelled"));
+}
+
+void TestInstaller::createInstallView()
+{
+ Q_ASSERT( mInstallView == 0 );
+ mInstallView = new HbView();
+ mInstallView->setTitle(tr("Test Installer"));
+
+ QGraphicsLinearLayout *installLayout = new QGraphicsLinearLayout(Qt::Vertical);
+
+ HbLabel *installTitle = new HbLabel(tr("Install:"));
+ installLayout->addItem(installTitle);
+
+ mInstallDirectories = new HbComboBox;
+ mInstallDirectories->setEditable(false);
+ QStringList dirList;
+ getInstallDirs(dirList);
+ mInstallDirectories->setItems(dirList);
+ connect(mInstallDirectories, SIGNAL(currentIndexChanged(int)),
+ this, SLOT(installableDirChanged(int)));
+ installLayout->addItem(mInstallDirectories);
+
+ mInstallableFiles = new HbComboBox;
+ mInstallableFiles->setEditable(false);
+ connect(mInstallableFiles, SIGNAL(currentIndexChanged(int)),
+ this, SLOT(installableFileChanged(int)));
+ installLayout->addItem(mInstallableFiles);
+
+ QGraphicsLinearLayout *checkboxesLayout = new QGraphicsLinearLayout(Qt::Horizontal);
+ HbCheckBox *silentInstallCheckBox = new HbCheckBox;
+ silentInstallCheckBox->setText(tr("Silent"));
+ connect(silentInstallCheckBox, SIGNAL(stateChanged(int)),
+ this, SLOT(silentInstallCheckChanged(int)));
+ checkboxesLayout->addItem(silentInstallCheckBox);
+ HbCheckBox *rfileCheckBox = new HbCheckBox;
+ rfileCheckBox->setText(tr("Use RFile"));
+ connect(rfileCheckBox, SIGNAL(stateChanged(int)), this, SLOT(rfileCheckChanged(int)));
+ checkboxesLayout->addItem(rfileCheckBox);
+ HbCheckBox *ocspCheckBox = new HbCheckBox;
+ ocspCheckBox->setText(tr("OCSP"));
+ connect(ocspCheckBox, SIGNAL(stateChanged(int)), this, SLOT(ocspCheckChanged(int)));
+ checkboxesLayout->addItem(ocspCheckBox);
+ installLayout->addItem(checkboxesLayout);
+ installLayout->addStretch();
+
+ HbCheckBox *cancelInstall = new HbCheckBox;
+ cancelInstall->setText(tr("Cancel after %1 seconds").arg(KCancelInstallDelay/1000));
+ connect(cancelInstall, SIGNAL(stateChanged(int)), this, SLOT(cancelInstallingChanged(int)));
+ installLayout->addItem(cancelInstall);
+
+ HbPushButton *installNew = new HbPushButton(tr("Install using new API"));
+ installLayout->addItem(installNew);
+ HbPushButton *installOld = new HbPushButton(tr("Install using old API"));
+ installLayout->addItem(installOld);
+ HbPushButton *launchApp = new HbPushButton(tr("Install by opening file"));
+ installLayout->addItem(launchApp);
+ installLayout->addStretch();
+ connect(installNew, SIGNAL(clicked()), this, SLOT(installUsingNewApi()));
+ connect(installOld, SIGNAL(clicked()), this, SLOT(installUsingOldApi()));
+ connect(launchApp, SIGNAL(clicked()), this, SLOT(installByOpeningFile()));
+
+ HbToolBar *installToolBar = new HbToolBar();
+ installToolBar->addAction(tr("RemoveView"), this, SLOT(removeViewActivated()));
+ installToolBar->addAction(tr("Exit"), this, SLOT(closeApp()));
+ mInstallView->setToolBar(installToolBar);
+
+ mInstallView->setLayout(installLayout);
+}
+
+void TestInstaller::createRemoveView()
+{
+ Q_ASSERT( mRemoveView == 0 );
+ mRemoveView = new HbView();
+ mRemoveView->setTitle(tr("Test Uninstaller"));
+
+ QGraphicsLinearLayout *removeLayout = new QGraphicsLinearLayout(Qt::Vertical);
+
+ HbLabel *uninstallTitle = new HbLabel(tr("Uninstall:"));
+ removeLayout->addItem(uninstallTitle);
+
+ mRemovableApps = new HbComboBox;
+ mRemovableApps->setEditable(false);
+ removeLayout->addItem(mRemovableApps);
+
+ HbCheckBox *silentRemoveCheckBox = new HbCheckBox;
+ silentRemoveCheckBox->setText(tr("Silent"));
+ connect(silentRemoveCheckBox, SIGNAL(stateChanged(int)),
+ this, SLOT(silentCheckChanged(int)));
+ removeLayout->addItem(silentRemoveCheckBox);
+ removeLayout->addStretch();
+
+ HbCheckBox *cancelRemove = new HbCheckBox;
+ cancelRemove->setText(tr("Cancel after %1 seconds").arg(KCancelRemoveDelay/1000));
+ connect(cancelRemove, SIGNAL(stateChanged(int)), this, SLOT(cancelRemovingChanged(int)));
+ removeLayout->addItem(cancelRemove);
+
+ HbPushButton *removeNew = new HbPushButton(tr("Remove using new API"));
+ removeLayout->addItem(removeNew);
+ HbPushButton *removeOld = new HbPushButton(tr("Remove using old API"));
+ removeLayout->addItem(removeOld);
+ removeLayout->addStretch();
+ connect(removeNew, SIGNAL(clicked()), this, SLOT(removeUsingNewApi()));
+ connect(removeOld, SIGNAL(clicked()), this, SLOT(removeUsingOldApi()));
+
+ HbToolBar *removeToolBar = new HbToolBar();
+ removeToolBar->addAction(tr("InstallView"), this, SLOT(installViewActivated()));
+ removeToolBar->addAction(tr("Exit"), this, SLOT(closeApp()));
+ mRemoveView->setToolBar(removeToolBar);
+
+ mRemoveView->setLayout(removeLayout);
+}
+
void TestInstaller::getInstallDirs(QStringList& dirList)
{
QStringList possibleDirs;
@@ -404,6 +443,10 @@
mRunner = new ActiveRunner(useSif);
connect(mRunner, SIGNAL(opCompleted()), this, SLOT(handleComplete()));
connect(mRunner, SIGNAL(opFailed(int)), this, SLOT(handleError(int)));
+
+ if (mCancelInstallShortly) {
+ QTimer::singleShot(KCancelInstallDelay, this, SLOT(cancelInstalling()));
+ }
} else {
HbMessageBox::warning(tr("Already running"));
return false;
@@ -450,6 +493,10 @@
int index = mRemovableApps->currentIndex();
const TComponentId &compId(mRemovableComponentIds.at(index));
mRunner->remove(compId, mUseSilentUninstall);
+
+ if (mCancelRemoveShortly) {
+ QTimer::singleShot(KCancelRemoveDelay, this, SLOT(cancelRemoving()));
+ }
}
}
--- a/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.h Fri Aug 20 11:39:56 2010 +0300
+++ b/appinstaller/AppinstUi/sisxsifplugin/tsrc/testinstaller/testinstaller.h Fri Sep 03 17:01:40 2010 +0300
@@ -44,12 +44,13 @@
void silentRemoveCheckChanged(int state);
void rfileCheckChanged(int state);
void ocspCheckChanged(int state);
+ void cancelInstallingChanged(int state);
+ void cancelRemovingChanged(int state);
void installableDirChanged(int index);
void installableFileChanged(int index);
void installUsingNewApi();
void installUsingOldApi();
void installByOpeningFile();
- void cancelInstalling();
void removeUsingNewApi();
void removeUsingOldApi();
void handleComplete();
@@ -57,8 +58,12 @@
void closeApp();
void fileOpenOk(const QVariant &result);
void fileOpenFailed(int errorCode, const QString &errorMsg);
+ void cancelInstalling();
+ void cancelRemoving();
private: // functions
+ void createInstallView();
+ void createRemoveView();
void getInstallDirs(QStringList& dirList);
void changeDir(const QString& dirPath);
void getRemovableApps();
@@ -78,6 +83,8 @@
bool mUseSilentUninstall;
bool mUseRFileInstall;
bool mOcsp;
+ bool mCancelInstallShortly;
+ bool mCancelRemoveShortly;
HbComboBox *mInstallDirectories;
HbComboBox *mInstallableFiles;
HbComboBox *mRemovableApps;
--- a/iaupdate/IAD/backgroundchecker/group/iaupdatebg.mmp Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/group/iaupdatebg.mmp Fri Sep 03 17:01:40 2010 +0300
@@ -45,7 +45,7 @@
SOURCE iaupdatebgfirsttimehandler.cpp
SOURCE iaupdatebginternalfilehandler.cpp
SOURCE iaupdatebgsoftnotification.cpp
-SOURCE iaupdatbgnotifyhandler.cpp
+SOURCE iaupdatebgnotifyhandler.cpp
LIBRARY euser.lib
@@ -53,14 +53,11 @@
LIBRARY iaupdateapi.lib
LIBRARY ws32.lib
LIBRARY apgrfx.lib
-LIBRARY Aknnotify.lib
-LIBRARY AknNotifyPlugin.lib
LIBRARY efsrv.lib
LIBRARY bafl.lib
LIBRARY estor.lib
LIBRARY CenRepNotifHandler.lib
LIBRARY apparc.lib
-LIBRARY AknDynamicSoftNote.lib
LIBRARY commonengine.lib
LIBRARY sysversioninfo.lib
LIBRARY FeatMgr.lib
--- a/iaupdate/IAD/backgroundchecker/src/iaupdatbgnotifyhandler.cpp Fri Aug 20 11:39:56 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
-/*
-* Copyright (c) 2010 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: This module contains the implementation of CIAUpdateBGNotifyHandler class
-* member functions.
-*
-*/
-
-
-//INCLUDES
-#include <e32property.h>
-
-#include "iaupdatebgnotifyhandler.h"
-#include "iaupdateuids.h"
-#include "iaupdatebglogger.h"
-
-//CONSTANTS (-> to iaupdaeuids.h)
-#define KIAUpdateBgcUid1 0x200211f4 // Bg checker UID
-const TUint32 KIAUpdateBGNotifyIndicatorRemove = 0x00000003;
-
-const TUid KPSUid = { KIAUpdateBgcUid1 };
-
-//MACROS
-_LIT_SECURITY_POLICY_PASS( KReadPolicy );
-_LIT_SECURITY_POLICY_C1( KWritePolicy, ECapabilityWriteDeviceData );
-
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------------------------
-// CIAUpdateBGNotifyHandler::NewL
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CIAUpdateBGNotifyHandler* CIAUpdateBGNotifyHandler::NewL()
- {
- CIAUpdateBGNotifyHandler* self = CIAUpdateBGNotifyHandler::NewLC();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CIAUpdateBGNotifyHandler::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CIAUpdateBGNotifyHandler* CIAUpdateBGNotifyHandler::NewLC()
- {
- CIAUpdateBGNotifyHandler* self = new( ELeave ) CIAUpdateBGNotifyHandler();
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-
-
-// ---------------------------------------------------------------------------
-// CIAUpdateBGNotifyHandler::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CIAUpdateBGNotifyHandler::ConstructL()
- {
- FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::ConstructL() begin");
- CActiveScheduler::Add( this );
- TInt err = RProperty::Define( KPSUid,
- KIAUpdateBGNotifyIndicatorRemove,
- RProperty::EInt,
- KReadPolicy,
- KWritePolicy );
- if ( err != KErrAlreadyExists )
- {
- User::LeaveIfError( err );
- }
-
- // If not definined, set initial (dummy) value
- if ( err == KErrNone )
- {
- RProperty::Set(KPSUid, KIAUpdateBGNotifyIndicatorRemove, 0);
- }
-
- FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::ConstructL() end");
- }
-
-// ---------------------------------------------------------------------------
-// CIAUpdateBGNotifyHandler::CIAUpdateBGNotifyHandler
-// constructor
-// ---------------------------------------------------------------------------
-//
-CIAUpdateBGNotifyHandler::CIAUpdateBGNotifyHandler()
-: CActive( CActive::EPriorityStandard )
- {
-
- }
-
-// ---------------------------------------------------------------------------
-// CIAUpdateBGNotifyHandler::~CIAUpdateBGNotifyHandler
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CIAUpdateBGNotifyHandler::~CIAUpdateBGNotifyHandler()
- {
- FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::~CIAUpdateBGNotifyHandler() begin");
-
- Cancel();
- iProperty.Close();
-
- FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::~CIAUpdateBGNotifyHandler() end");
- }
-
-// ---------------------------------------------------------------------------
-// CIAUpdateBGNotifyHandler::StartListeningL()
-//
-// ---------------------------------------------------------------------------
-//
-void CIAUpdateBGNotifyHandler::StartListeningL( MIAUpdateBGNotifyObserver* aObserver )
- {
-
- //#define KIAHelloWorldUiUid1 0xA000017F
- //const TUid KPSUid1 = { KIAUpdateUiUid1 };
-
- FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::StartListeningL() begin");
-
- if ( !iObserver )
- {
- iObserver = aObserver;
- User::LeaveIfError(
- iProperty.Attach( KPSUid, KIAUpdateBGNotifyIndicatorRemove ) );
- }
-
- Cancel();
- iProperty.Subscribe( iStatus );
- SetActive();
-
- FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::StartListeningL() end");
- }
-
-// -----------------------------------------------------------------------------
-// CIAUpdateBGNotifyHandler::DoCancel
-//
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateBGNotifyHandler::DoCancel()
- {
- FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::DoCancel() begin");
-
- iProperty.Cancel();
-
-
- FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::DoCancel() end");
- }
-
-// -----------------------------------------------------------------------------
-// CIAUpdateBGNotifyHandler::RunL
-//
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateBGNotifyHandler::RunL()
- {
- FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::RunL() begin");
- iProperty.Subscribe( iStatus );
- SetActive();
-
- /* No need to read value so far
- TInt value = 0;
- User::LeaveIfError( RProperty::Get( KPSUid,
- KIAUpdateUiRefresh,
- wgId ) );
- */
-
- iObserver->HandleIndicatorRemoveL();
-
- FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::RunL() end");
- }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateBGNotifyHandler::RunError
-//
-// -----------------------------------------------------------------------------
-//
-TInt CIAUpdateBGNotifyHandler::RunError( TInt /*aError*/ )
- {
- FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::RunError()");
- return KErrNone;
- }
-
-// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/iaupdate/IAD/backgroundchecker/src/iaupdatebgnotifyhandler.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -0,0 +1,188 @@
+/*
+* Copyright (c) 2010 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: This module contains the implementation of CIAUpdateBGNotifyHandler class
+* member functions.
+*
+*/
+
+
+//INCLUDES
+#include <e32property.h>
+
+#include "iaupdatebgnotifyhandler.h"
+#include "iaupdateuids.h"
+#include "iaupdatebglogger.h"
+
+//MACROS
+_LIT_SECURITY_POLICY_PASS( KReadPolicy );
+_LIT_SECURITY_POLICY_C1( KWritePolicy, ECapabilityWriteDeviceData );
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::NewL
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+CIAUpdateBGNotifyHandler* CIAUpdateBGNotifyHandler::NewL()
+ {
+ CIAUpdateBGNotifyHandler* self = CIAUpdateBGNotifyHandler::NewLC();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::NewLC
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CIAUpdateBGNotifyHandler* CIAUpdateBGNotifyHandler::NewLC()
+ {
+ CIAUpdateBGNotifyHandler* self = new( ELeave ) CIAUpdateBGNotifyHandler();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+
+// ---------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CIAUpdateBGNotifyHandler::ConstructL()
+ {
+ FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::ConstructL() begin");
+ CActiveScheduler::Add( this );
+ TInt err = RProperty::Define( KPSUidBgc,
+ KIAUpdateBGNotifyIndicatorRemove,
+ RProperty::EInt,
+ KReadPolicy,
+ KWritePolicy );
+ if ( err != KErrAlreadyExists )
+ {
+ User::LeaveIfError( err );
+ }
+
+ // If not definined, set initial (dummy) value
+ if ( err == KErrNone )
+ {
+ RProperty::Set(KPSUidBgc, KIAUpdateBGNotifyIndicatorRemove, 0);
+ }
+
+ FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::ConstructL() end");
+ }
+
+// ---------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::CIAUpdateBGNotifyHandler
+// constructor
+// ---------------------------------------------------------------------------
+//
+CIAUpdateBGNotifyHandler::CIAUpdateBGNotifyHandler()
+: CActive( CActive::EPriorityStandard )
+ {
+
+ }
+
+// ---------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::~CIAUpdateBGNotifyHandler
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CIAUpdateBGNotifyHandler::~CIAUpdateBGNotifyHandler()
+ {
+ FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::~CIAUpdateBGNotifyHandler() begin");
+
+ Cancel();
+ iProperty.Close();
+
+ FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::~CIAUpdateBGNotifyHandler() end");
+ }
+
+// ---------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::StartListeningL()
+//
+// ---------------------------------------------------------------------------
+//
+void CIAUpdateBGNotifyHandler::StartListeningL( MIAUpdateBGNotifyObserver* aObserver )
+ {
+
+ FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::StartListeningL() begin");
+
+ if ( !iObserver )
+ {
+ iObserver = aObserver;
+ User::LeaveIfError(
+ iProperty.Attach( KPSUidBgc, KIAUpdateBGNotifyIndicatorRemove ) );
+ }
+
+ Cancel();
+ iProperty.Subscribe( iStatus );
+ SetActive();
+
+ FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::StartListeningL() end");
+ }
+
+// -----------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::DoCancel
+//
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateBGNotifyHandler::DoCancel()
+ {
+ FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::DoCancel() begin");
+
+ iProperty.Cancel();
+
+
+ FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::DoCancel() end");
+ }
+
+// -----------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::RunL
+//
+// -----------------------------------------------------------------------------
+//
+void CIAUpdateBGNotifyHandler::RunL()
+ {
+ FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::RunL() begin");
+ iProperty.Subscribe( iStatus );
+ SetActive();
+
+ /* No need to read value so far
+ TInt value = 0;
+ User::LeaveIfError( RProperty::Get( KPSUidBgc,
+ KIAUpdateBGNotifyIndicatorRemove,
+ value ) );
+ */
+
+ iObserver->HandleIndicatorRemoveL();
+
+ FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::RunL() end");
+ }
+
+
+// -----------------------------------------------------------------------------
+// CIAUpdateBGNotifyHandler::RunError
+//
+// -----------------------------------------------------------------------------
+//
+TInt CIAUpdateBGNotifyHandler::RunError( TInt /*aError*/ )
+ {
+ FLOG("[IAUPDATE] CIAUpdateBGNotifyHandler::RunError()");
+ return KErrNone;
+ }
+
+// End of File
--- a/iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/src/iaupdatebgrefreshtimer.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -44,6 +44,17 @@
_LIT8( KRefreshFromNetworkDenied, "1" );
_LIT(KIAUpdateLauncherExe, "iaupdatelauncher.exe" );
+// translator
+_LIT(KPath, "z:/resource/qt/translations/");
+_LIT(KFileName, "swupdate_");
+
+// loc texts
+_LIT(KTitleFirstTime, "txt_software_dpophead_update_checking");
+_LIT(KTitleOneUpdate, "txt_software_dpophead_update_available");
+_LIT(KTitleSeveralUpdates, "txt_software_dpophead_updates_available");
+_LIT(KSecondRow, "txt_software_dpopinfo_tap_to_view");
+
+
//CONSTANTS
const TUint KIADUpdateLauncherUid( 0x2001FE2F );
@@ -82,14 +93,12 @@
iIndicatorNotifyHandler = CIAUpdateBGNotifyHandler::NewL();
- // loc: initialize localisation text loader
- /*
- TBool res = HbTextResolverSymbian::Init(KLocFile, KLocFilePath);
+ // initialize localisation text loader
+ TBool res = HbTextResolverSymbian::Init(KFileName, KPath);
if ( res != KErrNone )
{
// nothing to do
}
- */
}
// ----------------------------------------------------------
@@ -1294,129 +1303,39 @@
// ----------------------------------------------------------
void CIAUpdateBGTimer::LaunchNotificationL( const int aNrOfUpdates )
{
-
- _LIT( KFirstTimeText, "Update checking" );
- _LIT( KNormalText, "Updates available" );
- _LIT( KSecondText, "Tap to view" );
-
- // loc:
- /*
- _LIT( KIcon, "z:\\resource\\iaupdate\\qgn_note_swupdate_notification.svg" );
- _LIT(KLocFile, "Text_Map_Swupdate_");
- _LIT(KLocFilePath, "z:\\resource\\iaupdate\\");
-
- _LIT(KTitleFirstTime, "txt_software_dpophead_update_checking");
- _LIT(KTitleOneUpdate, "txt_software_dpophead_update_available");
- _LIT(KTitleSeveralUpdates, "txt_software_dpophead_updates_available");
-
-
- _LIT(KSecondFirstTime, "txt_software_dpopinfo_tap_to_view");
- _LIT(KSecondOneUpdate, "txt_software_dpopinfo_tap_to_view");
- _LIT(KSecondSeveralUpdates, "txt_software_dpopinfo_tap_to_view");
- */
FLOG("[bgchecker] LaunchNotificationL ");
iMode = ModeL();
- // loc: initialize localisation text loader
- /*
- TBool res = HbTextResolverSymbian::Init(KLocFile, KLocFilePath);
- if ( res != KErrNone )
- {
- // nothing to do
- }
- */
-
-
- // loc: Resolve title text
- /*
+ // Resolve title text
HBufC* titleText;
if ( aNrOfUpdates == 0 )
{
// First time case
- titleText = HbTextResolverSymbian::LoadL( KTitleFirstTime );
+ titleText = HbTextResolverSymbian::LoadLC( KTitleFirstTime );
}
else if ( aNrOfUpdates == 1 )
{
// one update available
- titleText = HbTextResolverSymbian::LoadL( KTitleOneUpdate );
- }
- else
- {
- // several updates available
- titleText = HbTextResolverSymbian::LoadL( KTitleSeveralUpdates );
- }
-
- // Resolve second text
- HBufC* secondText;
- if ( aNrOfUpdates == 0 )
- {
- // First time case
- secondText = HbTextResolverSymbian::LoadL( KSecondFirstTime );
- }
- else if ( aNrOfUpdates == 1 )
- {
- // one update available
- secondText = HbTextResolverSymbian::LoadL( KSecondOneUpdate, aNrOfUpdates );
+ titleText = HbTextResolverSymbian::LoadLC( KTitleOneUpdate );
}
else
{
// several updates available
- // loc: text.append(hbTrId("txt_software_dblist_updates_available"));
- secondText = HbTextResolverSymbian::LoadL( KSecondSeveralUpdates, aNrOfUpdates );
- }
- */
-
- // loc: Load title and second line
- // HBufC* titleText = HbTextResolverSymbian::LoadL(KTextTitle);
- // CleanupStack::PushL( titleText );
- // HBufC* secondText3 = HbTextResolverSymbian::LoadL(KTextSecond);
- // CleanupStack::PushL( titleText );
-
-
- TBuf<128> titleText;
- TBuf<128> secondText;
-
- //title text (normal/first time)
- if ( iMode == ENormalMode )
- {
- titleText.Append(KNormalText);
- }
- else
- {
- titleText.Append(KFirstTimeText);
+ titleText = HbTextResolverSymbian::LoadLC( KTitleSeveralUpdates );
}
- //text for 2nd line
- secondText.Append(KSecondText);
-
- // icon
- /* HLa-->
- if ( iMode == ENormalMode )
- {
- TFileName path;
- TInt err = GetPrivatePathL( path );
-
- if ( err == KErrNone )
- {
- iSoftNotification->SetImagePathL( path );
- //HBufC8* image = LoadFileLC( path );
- //iSoftNotification->SetImageL( *image );
- //CleanupStack::PopAndDestroy( image );
- }
- }
- */
- // loc: set image path
- // iSoftNotification->SetImagePathL( KIcon );
-
+ // Resolve second text
+ HBufC* secondText;
+ secondText = HbTextResolverSymbian::LoadLC( KSecondRow );
+
// Set texts
- // loc: iSoftNotification->SetTextL( titleText->Des(), secondText->Des() );
- iSoftNotification->SetTextL( titleText, secondText );
+ iSoftNotification->SetTextL( titleText->Des(), secondText->Des() );
- // loc: delete text buffers
- // CleanupStack::PopAndDestroy( titleText );
- // CleanupStack::PopAndDestroy( titleText );
+ // delete text buffers
+ CleanupStack::PopAndDestroy( secondText );
+ CleanupStack::PopAndDestroy( titleText );
// Set number of updates for dialog and internal file
iSoftNotification->SetNrOfUpdates( aNrOfUpdates );
--- a/iaupdate/IAD/backgroundchecker/src/iaupdatebgsoftnotification.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/backgroundchecker/src/iaupdatebgsoftnotification.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -29,6 +29,9 @@
// Indicator type
_LIT(KIndicatorTypeBgc, "com.nokia.iaupdate.indicatorplugin/1.0");
+// Icon name
+_LIT( KIconName, "qtg_large_swupdate" );
+
// ============================ MEMBER FUNCTIONS ===============================
void CIAUpdateBGSoftNotification::NotificationDialogActivated(
const CHbDeviceNotificationDialogSymbian* /* aDialog */)
@@ -130,6 +133,7 @@
// fill texts, icon & behaviour parameters
FillNotificationParams();
+ iNotificationDialog->SetIconNameL( KIconName );
iNotificationDialog->ShowL();
return;
--- a/iaupdate/IAD/bgcindicatorplugin/inc/bgcindicator.h Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/bgcindicatorplugin/inc/bgcindicator.h Fri Sep 03 17:01:40 2010 +0300
@@ -21,6 +21,7 @@
#include <QObject>
#include <hbindicatorinterface.h>
+#include <hbtranslator.h>
/**
* Message indicator class.
@@ -63,9 +64,15 @@
private:
/**
- * Nr of updates
+ * Owned
*/
int mNrOfUpdates;
+ /**
+ * Owned
+ */
+ HbTranslator *mTranslator;
+
+
};
--- a/iaupdate/IAD/bgcindicatorplugin/src/bgcindicator.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/bgcindicatorplugin/src/bgcindicator.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -20,12 +20,13 @@
#include <apacmdln.h>
#include <xqservicerequest.h>
-#include <hb/hbcore/hbtranslator.h>
-
#include <hbicon.h>
#include "bgcindicator.h"
+const char KTranslatorFileName[] = "swupdate";
+const char KIconName[] = "qtg_large_swupdate";
+
//----------------------------------------------------------------------
@@ -37,8 +38,12 @@
HbIndicatorInterface(indicatorType,
HbIndicatorInterface::NotificationCategory,
InteractionActivated),
- mNrOfUpdates(0)
+ mNrOfUpdates(0),
+ mTranslator(0)
{
+
+ HbTranslator* mTranslator = new HbTranslator(KTranslatorFileName);
+
}
// ----------------------------------------------------------------------------
@@ -47,6 +52,11 @@
// ----------------------------------------------------------------------------
BgcIndicator::~BgcIndicator()
{
+ if (mTranslator)
+ {
+ delete mTranslator;
+ mTranslator = 0;
+ }
}
// ----------------------------------------------------------------------------
@@ -77,10 +87,8 @@
// ----------------------------------------------------------------------------
QVariant BgcIndicator::indicatorData(int role) const
{
- // use iaupdate's translate file
- // loc: HbTranslator trans("z:\\resource\\iaupdate\\","Text_Map_Swupdate_");
-switch(role)
+ switch(role)
{
case PrimaryTextRole:
{
@@ -88,20 +96,17 @@
if ( mNrOfUpdates == 0 )
{
// First time case
- // loc: text.append(hbTrId("txt_software_dblist_update_checking"));
- text.append(QString("Update checking"));
+ text.append(hbTrId("txt_software_dblist_update_checking"));
}
else if ( mNrOfUpdates == 1 )
{
// one update available
- // loc: text.append(hbTrId("txt_software_dblist_update_available"));
- text.append(QString("Update available"));
+ text.append(hbTrId("txt_software_dblist_update_available"));
}
else
{
// several updates available
- // loc: text.append(hbTrId("txt_software_dblist_updates_available"));
- text.append(QString("Updates available"));
+ text.append(hbTrId("txt_software_dblist_updates_available"));
}
return text;
}
@@ -111,28 +116,20 @@
if ( mNrOfUpdates == 0 )
{
// First time case
- // loc: QString text(hbTrId("txt_software_dblist_val_not_activated"));
- text.append(QString("Not activated"));
+ text.append(hbTrId("txt_software_dblist_val_not_activated"));
}
- else if ( mNrOfUpdates == 1 )
+ else
{
- // one update available
- // loc: QString text(hbTrId("txt_software_dblist_1_val_ln_update"));
- text.append(QString("%Ln updates").arg(mNrOfUpdates));
+ // update(s) available
+ text.append(hbTrId("txt_software_dblist_val_ln_update", mNrOfUpdates));
}
- else
- {
- // several updates available
- // loc: QString text(hbTrId("txt_software_dblist_1_val_ln_update"));
- text.append(QString("%%Ln updates").arg(mNrOfUpdates));
- }
+
return text;
}
case DecorationNameRole:
case MonoDecorationNameRole:
{
- QString iconName("");
- return iconName;
+ return QString(KIconName);
}
default:
return QVariant();
--- a/iaupdate/IAD/engine/controller/src/iaupdateinstalloperation.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/engine/controller/src/iaupdateinstalloperation.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -208,7 +208,7 @@
// Get silent install parameters
Usif::COpaqueNamedParams * options = Usif::COpaqueNamedParams::NewLC();
- IAUpdateUtils::UsifSilentInstallOptionsL ( options );
+ IAUpdateUtils::UsifSilentInstallOptionsL ( Node(), options );
operation = install->SilentInstallL( *this, options );
--- a/iaupdate/IAD/engine/controller/src/iaupdateutils.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/engine/controller/src/iaupdateutils.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -509,12 +509,13 @@
//
// ---------------------------------------------------------------------------
-void IAUpdateUtils::UsifSilentInstallOptionsL(
- Usif::COpaqueNamedParams * aOptions )
+void IAUpdateUtils::UsifSilentInstallOptionsL(
+ const CIAUpdateBaseNode& aNode, Usif::COpaqueNamedParams * aOptions )
{
-
+
+ // Install silently
aOptions->AddIntL( Usif::KSifInParam_InstallSilently, ETrue );
-
+
// Upgrades are allowed
aOptions->AddIntL( Usif::KSifInParam_AllowUpgrade, Usif::EAllowed );
@@ -547,16 +548,47 @@
aOptions->AddIntL( Usif::KSifInParam_AllowIncompatible, Usif::EAllowed );
// This only affects Java applications.
- aOptions->AddIntL( Usif::KSifInParam_AllowDownload, Usif::EAllowed );
+ // TODO: Add when bigger parameter buffer exists
+ // aOptions->AddIntL( Usif::KSifInParam_AllowDownload, Usif::EAllowed );
// Where to save.
- //aOptions->AddIntL( Usif::KSifInParam_Drive, EDriveC );
+
+ TDriveUnit driveUnit;
+
+ if ( aNode.Mime().Compare( IAUpdateProtocolConsts::KMimeWidget ) == 0 )
+ {
+ driveUnit = IAUpdateUtils::DriveToInstallWidgetL( aNode.Identifier() );
+ }
+ else
+ {
+ driveUnit = IAUpdateUtils::DriveToInstallL( aNode.Uid(), aNode.OwnContentSizeL() );
+ }
+
+ /* TODO: Add when installer plugin supports integer lists
+ RArray<TInt> driveArray;
+ CleanupClosePushL( driveArray );
+ User::LeaveIfError( driveArray.Append( driveUnit ) );
+ aOptions->AddIntArrayL( Usif::KSifInParam_Drive, driveArray );
+ CleanupStack::PopAndDestroy( &driveArray );
+ */
+
+ aOptions->AddIntL( Usif::KSifInParam_Drive, driveUnit ); // to be removed
+
// Choose the phone language.
+
TLanguage lang = User::Language();
+ /* TODO: Add when installer plugin supports integer lists
+ RArray<TInt> langArray;
+ CleanupClosePushL( langArray );
+ User::LeaveIfError( langArray.Append( lang ) );
+ aOptions->AddIntArrayL( Usif::KSifInParam_Drive, langArray );
+ CleanupStack::PopAndDestroy( &langArray );
+
+ */
+
//aOptions->AddIntL( Usif::KSifInParam_Languages, lang ); // User::Language() );
- //aOptions->AddIntL( Usif::KSifInParam_Drive, IAUpdateUtils::DriveToInstallL( aUid, aSize ) );
}
// -----------------------------------------------------------------------------
// IAUpdateUtils::InstalledDriveL
@@ -671,39 +703,33 @@
//
// -----------------------------------------------------------------------------
//
-void IAUpdateUtils::InstalledDriveWidgetL( RFs& aFs,
- RWidgetRegistryClientSession& aWidgetRegistry,
- const TUid& aUid,
- TDriveUnit& aLocationDrive )
+void IAUpdateUtils::InstalledDriveWidgetL( TDriveUnit& aLocationDrive )
{
IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::InstalledDriveWidgetL() begin");
- aLocationDrive = EDriveC;
- //HLa: Widget registry remove
- /*
- TFileName widgetPath;
- aWidgetRegistry.GetWidgetPath( aUid, widgetPath );
- aLocationDrive = widgetPath.Mid( 0, 2 );
- IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateUtils::InstalledDriveWidgetL() Drive in registry: %S", &aLocationDrive.Name() );
+ // Check drive
if ( aLocationDrive == EDriveZ )
- {
- // if the installation is in ROM, then install to C drive
- aLocationDrive = EDriveC;
- IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::InstalledDriveWidgetL() Exists in ROM, install to C:");
- }
+ {
+ // if the installation is in ROM, then install to C drive
+ aLocationDrive = EDriveC;
+ IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::InstalledDriveWidgetL() Exists in ROM, install to C:");
+ }
else
- {
- TUint driveStatus = 0;
- User::LeaveIfError( DriveInfo::GetDriveStatus( aFs, aLocationDrive, driveStatus ) );
- // if the installation drive physically removable and it's not available, then install to C drive
- if ( ( driveStatus & DriveInfo::EDriveRemovable ) && ( !(driveStatus & DriveInfo::EDrivePresent) ) )
- {
- aLocationDrive = EDriveC;
- IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::InstalledDriveWidgetL() Physically removable drive not present, install to C:");
- }
- }
- */
+ {
+ RFs fs;
+ User::LeaveIfError( fs.Connect() );
+ CleanupClosePushL( fs );
+ TUint driveStatus = 0;
+ User::LeaveIfError( DriveInfo::GetDriveStatus( fs, aLocationDrive, driveStatus ) );
+ // if the installation drive physically removable and it's not available, then install to C drive
+ if ( ( driveStatus & DriveInfo::EDriveRemovable ) && ( !(driveStatus & DriveInfo::EDrivePresent) ) )
+ {
+ aLocationDrive = EDriveC;
+ IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::InstalledDriveWidgetL() Physically removable drive not present, install to C:");
+ }
+ CleanupStack::PopAndDestroy( &fs );
+ }
IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::InstalledDriveWidgetL() begin");
}
@@ -794,45 +820,50 @@
IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::DriveToInstallWidgetL() begin");
IAUPDATE_TRACE_1("[IAUPDATE] IAUpdateUtils::DriveToInstallWidgetL() identifier: %S", &aIdentifier );
-
TDriveUnit targetDriveUnit( EDriveC );
- //HLa: Widget registry remove
- /*
- RWidgetRegistryClientSession widgetRegistry;
-
- User::LeaveIfError( widgetRegistry.Connect() );
-
- CleanupClosePushL( widgetRegistry );
-
- RPointerArray<CWidgetInfo> widgetInfoArr;
- CleanupResetAndDestroyPushL( widgetInfoArr );
- TInt err = widgetRegistry.InstalledWidgetsL(widgetInfoArr);
+ // Connect to registry
+ Usif::RSoftwareComponentRegistry scrSession;
+ CleanupClosePushL( scrSession );
+ User::LeaveIfError( scrSession.Connect());
+
+ // Get widget component id by identifier
+ Usif::TComponentId compId = 0;
+ TRAPD( err, compId =
+ scrSession.GetComponentIdL( aIdentifier, Usif::KSoftwareTypeWidget ));
- TBool foundInRegistry( EFalse );
- for( TInt i( widgetInfoArr.Count() - 1 ); !foundInRegistry && i >= 0; --i )
+ if ( err == KErrNotFound )
+ {
+ targetDriveUnit = EDriveC ;
+ }
+ else if (err != KErrNone )
+ {
+ User::Leave( err );
+ }
+ else
{
- CWidgetInfo* widgetInfo( widgetInfoArr[i] );
-
- CWidgetPropertyValue* BundleId = widgetRegistry.GetWidgetPropertyValueL(widgetInfo->iUid, EBundleIdentifier );
- CleanupStack::PushL( BundleId );
-
- if( aIdentifier.Compare( *(BundleId->iValue.s) )== 0 )
+ // Get entry
+ Usif::CComponentEntry* entry = Usif::CComponentEntry::NewLC();
+ TBool retVal = scrSession.GetComponentL(compId, *entry);
+
+ // Get drive
+ TDriveList installedDrives = entry->InstalledDrives();
+ for ( TInt index(0); index < KMaxDrives; index++ )
{
- IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::DriveToInstallWidgetL() Found in registry");
- foundInRegistry = ETrue;
- RFs fs;
- User::LeaveIfError( fs.Connect() );
- CleanupClosePushL( fs );
- InstalledDriveWidgetL( fs, widgetRegistry, widgetInfo->iUid, targetDriveUnit );
- CleanupStack::PopAndDestroy( &fs );
- }
- CleanupStack::PopAndDestroy( BundleId );
+ if ( installedDrives[index] )
+ {
+ targetDriveUnit = index;
+ }
+ }
+
+ // Check drive validity
+ InstalledDriveWidgetL( targetDriveUnit );
+
+ CleanupStack::PopAndDestroy(entry);
}
-
- CleanupStack::PopAndDestroy( &widgetInfoArr );
- CleanupStack::PopAndDestroy( &widgetRegistry);
- */
+
+ CleanupStack::PopAndDestroy( &scrSession );
+
IAUPDATE_TRACE("[IAUPDATE] IAUpdateUtils::DriveToInstallWidgetL() end");
return targetDriveUnit;
--- a/iaupdate/IAD/engine/inc/iaupdateutils.h Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/engine/inc/iaupdateutils.h Fri Sep 03 17:01:40 2010 +0300
@@ -24,7 +24,6 @@
#include <driveinfo.h>
// For silent installation
-#include <SWInstDefs.h>
#include <usif/sif/sif.h>
#include <swi/sisregistryentry.h>
@@ -120,22 +119,15 @@
**/
IMPORT_C TBool IsInstalledL( const TUid& aPUid, const TDesC& aExecutable );
-/**
- * Creates options for silent install.
- * Uses DriveToInstallL to etermine target drive to install.
- *
- * @param aNode
- */
-SwiUI::TInstallOptions SilentInstallOptionsL( const CIAUpdateBaseNode& aNode );
-
/**
* Creates options for silent install.
- * Uses DriveToInstallL to etermine target drive to install.
+ * Uses DriveToInstallL to determine target drive to install.
*
* @param aOptions Silent install options
*/
-void UsifSilentInstallOptionsL( Usif::COpaqueNamedParams * aOptions );
+void UsifSilentInstallOptionsL(
+ const CIAUpdateBaseNode& aNode,Usif::COpaqueNamedParams * aOptions );
/**
* Finds drive where a package is currently installed
@@ -145,10 +137,7 @@
**/
TBool InstalledDriveL( RFs& aFs, const TUid& aUid, TDriveUnit& aLocationDrive );
-void InstalledDriveWidgetL( RFs& aFs,
- RWidgetRegistryClientSession& aWidgetRegistry,
- const TUid& aUid,
- TDriveUnit& aLocationDrive );
+void InstalledDriveWidgetL( TDriveUnit& aLocationDrive );
TBool NextInternalDriveL( RFs& aFs,
TDriveUnit aCurrentDrive,
--- a/iaupdate/IAD/ui/inc/iaupdateuids.h Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/ui/inc/iaupdateuids.h Fri Sep 03 17:01:40 2010 +0300
@@ -31,4 +31,11 @@
*/
#define KIAUpdateFamilyUid KIAUpdateUiUid
+/**
+ * Id:s for informing background checker about main list refresh
+ */
+#define KIAUpdateBgcUid1 0x200211f4 // Bg checker UID; P&S Category
+const TUid KPSUidBgc = { KIAUpdateBgcUid1 };
+const TUint32 KIAUpdateBGNotifyIndicatorRemove = 0x00000003; // P&S Category
+
#endif // IA_UPDATE_UIDS_H
--- a/iaupdate/IAD/ui/src/iaupdateengine.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateengine.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -576,6 +576,11 @@
else
{
emit refresh(iController->Nodes(), iController->FwNodes(), aError);
+
+ // inform bgchecker to clear indicator menu
+ User::LeaveIfError(
+ RProperty::Set(KPSUidBgc, KIAUpdateBGNotifyIndicatorRemove, 0) );
+
//if ( aWithViewActivation)
// {
// ActivateLocalViewL( TUid::Uid( EIAUpdateMainViewId ) );
--- a/iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -306,6 +306,8 @@
aItemName = XQConversions::s60DescToQString( temp->Des() );
+ delete temp;
+
if ( aItemName.size() == 0 )
{
User::Leave(KErrNotFound);
@@ -319,40 +321,49 @@
void CIAUpdateSettingDialog::initializeView()
{
- setTitle("Software update"); // txt_software_title_software_update
- mSettingsForm->setHeading("Settings"); // txt_software_subhead_settings
+ setTitle("Software update");
+ //setTitle(hbTrId("txt_software_title_software_update"));
+
+ mSettingsForm->setHeading("Settings");
+ //mSettingsForm->setHeading(hbTrId("txt_software_subhead_settings"));
+
+ //create a model class
+ HbDataFormModel *mModel = new HbDataFormModel();
- //create a model class
- HbDataFormModel *mModel = new HbDataFormModel();
-
- // add Destination item
- mDestinationItem = mModel->appendDataFormItem(
- HbDataFormModelItem::ToggleValueItem, QString("Network connection")); // txt_software_formlabel_access_point
+ // add Destination item
+ mDestinationItem = mModel->appendDataFormItem(
+ HbDataFormModelItem::ToggleValueItem, QString("Network connection"));
+ //HbDataFormModelItem::ToggleValueItem, hbTrId("txt_software_formlabel_network_connection"));
- // add auto update item
- mAutoUpdateItem = mModel->appendDataFormItem(
- HbDataFormModelItem::ComboBoxItem, QString("Auto-check for updates")); // txt_software_setlabel_autocheck_for_updates
-
- // auto update selection values
- QStringList list;
- list.insert(0, QString("On")); // txt_software_setlabel_val_on
- list.append(QString("Off")); // txt_software_setlabel_val_off
- list.append(QString("On in home network")); // txt_software_setlabel_val_on_in_home_network
- mAutoUpdateItem->setContentWidgetData("items", list);
+ // add auto update item
+ mAutoUpdateItem = mModel->appendDataFormItem(
+ HbDataFormModelItem::ComboBoxItem, QString("Auto-check for updates"));
+ //HbDataFormModelItem::ComboBoxItem, hbTrId("txt_software_setlabel_autocheck_for_updates"));
+
+ // auto update selection values
+ QStringList list;
+ list.insert(0, QString("On"));
+ //list.insert(0, hbTrId("txt_software_setlabel_val_on"));
+ list.append(QString("Off"));
+ //list.append(hbTrId("txt_software_setlabel_val_off"));
+ list.append(QString("On in home network"));
+ //list.append(hbTrId("txt_software_setlabel_val_on_in_home_network"));
+
+ mAutoUpdateItem->setContentWidgetData("items", list);
// connect data changes for launching the access point selection dialog
- connect(mModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)),
- this, SLOT(toggleChange(QModelIndex, QModelIndex)));
+ connect(mModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)),
+ this, SLOT(toggleChange(QModelIndex, QModelIndex)));
- // connect to function called when data items are displayed
- connect(mSettingsForm, SIGNAL(activated(QModelIndex)),
- this, SLOT(activated(QModelIndex)));
-
- mSettingsForm->setModel(mModel);
-
- // set values for items
- TRAPD(err, initializeFieldsL());
- qt_symbian_throwIfError(err);
+ // connect to function called when data items are displayed
+ connect(mSettingsForm, SIGNAL(activated(QModelIndex)),
+ this, SLOT(activated(QModelIndex)));
+
+ mSettingsForm->setModel(mModel);
+
+ // set values for items
+ TRAPD(err, initializeFieldsL());
+ qt_symbian_throwIfError(err);
}
// -----------------------------------------------------------------------------
--- a/iaupdate/IAD/ui/src/iaupdateuicontroller.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdateuicontroller.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -20,7 +20,6 @@
// INCLUDES
#include <centralrepository.h>
-#include <SWInstDefs.h>
#include <featurecontrol.h>
#include <cmmanager.h>
#include <qapplication.h>
@@ -1452,7 +1451,7 @@
iState = EIdle;
//CIAUpdateAppUi* appUi = static_cast<CIAUpdateAppUi*>( iEikEnv->EikAppUi() );
//appUi->StopWGListChangeMonitoring();
- if ( aError == SwiUI::KSWInstErrFileInUse )
+ if ( aError == KErrInUse )
{
iFileInUseError = ETrue;
}
--- a/iaupdate/IAD/updater/inc/iaupdaterinstaller.h Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/updater/inc/iaupdaterinstaller.h Fri Sep 03 17:01:40 2010 +0300
@@ -23,6 +23,8 @@
#include <e32base.h>
#include <f32file.h>
+#include <usif/sif/sif.h>
+
class CIAUpdaterMngr;
class CIAUpdaterSilentLauncher;
@@ -194,7 +196,10 @@
// CActiveSchedulerWait object can be used as a data member
// inside other CBase derived classes.
- CActiveSchedulerWait iWaiter;
+ CActiveSchedulerWait iWaiter;
+
+ // Installaion results
+ Usif::COpaqueNamedParams* iResults;
};
--- a/iaupdate/IAD/updater/inc/iaupdatersilentlauncher.h Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/updater/inc/iaupdatersilentlauncher.h Fri Sep 03 17:01:40 2010 +0300
@@ -22,7 +22,6 @@
#include <e32base.h>
#include <f32file.h>
-#include <SWInstApi.h>
#include <usif/sif/sif.h>
@@ -53,9 +52,11 @@
* @since
* @param aFile Name of the file to install
* @param aStatus Request status
+ * @param aResults Installation results
*/
- void InstallL( const TDesC& aFile, TRequestStatus& aStatus );
-
+ void CIAUpdaterSilentLauncher::InstallL ( const TDesC& aFile,
+ TRequestStatus& aStatus, Usif::COpaqueNamedParams* aResults );
+
/**
* Cancel the current installation.
*
@@ -85,7 +86,6 @@
Usif::RSoftwareInstall iLauncher;
Usif::COpaqueNamedParams* iOptionsPckg;
- Usif::COpaqueNamedParams* iResults;
RFs& iFs;
--- a/iaupdate/IAD/updater/src/iaupdaterinstaller.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/updater/src/iaupdaterinstaller.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -16,13 +16,14 @@
*/
-
#include "iaupdaterinstaller.h"
#include "iaupdatermngr.h"
#include "iaupdatersilentlauncher.h"
#include "iaupdaterdefs.h"
#include "iaupdatedebug.h"
+#include <usif/usiferror.h>
+
// ======== LOCAL FUNCTIONS =========
@@ -81,6 +82,8 @@
iFilesToInstall.ResetAndDestroy();
delete iInstallLauncher;
+
+ delete iResults;
IAUPDATE_TRACE("[IAUpdater] CIAUpdaterInstaller::~CIAUpdaterInstaller end");
}
@@ -95,6 +98,7 @@
{
IAUPDATE_TRACE("[IAUpdater] CIAUpdaterInstaller::ConstructL begin");
User::LeaveIfError( iTimer.CreateLocal() );
+ iResults = Usif::COpaqueNamedParams::NewL();
IAUPDATE_TRACE("[IAUpdater] CIAUpdaterInstaller::ConstructL end");
}
@@ -247,8 +251,12 @@
case EDSisInstallerStateInstalling:
{
IAUPDATE_TRACE("[IAUpdater] RunL() Sis Inst. state INSTALLING");
-
- if ( iStatus.Int() == SwiUI::KSWInstErrBusy )
+
+ // Get error category
+ TInt errCategory = iResults->GetIntByNameL
+ (Usif::KSifOutParam_ErrCategory, errCategory);
+
+ if ( errCategory == Usif::EInstallerBusy )
{
IAUPDATE_TRACE("[IAUpdater] RunL() SWInstaller Busy");
@@ -260,10 +268,10 @@
SetActive();
break;
}
- else if ( (iStatus.Int() == SwiUI::KSWInstErrSecurityFailure &&
+ else if ( (errCategory == Usif::ESecurityError &&
iInstallErr == KErrNone) ||
(iStatus.Int() != KErrNone &&
- iStatus.Int() != SwiUI::KSWInstErrSecurityFailure) )
+ iStatus.Int() != errCategory == Usif::ESecurityError) )
{
IAUPDATE_TRACE("[IAUpdater] RunL() Ins. err or sec. failure");
@@ -296,7 +304,7 @@
++iFileIndex;
IAUPDATE_TRACE_1("[IAUpdater] RunL() Start install %S", &iSisFile );
- iInstallLauncher->InstallL( iSisFile, iStatus );
+ iInstallLauncher->InstallL( iSisFile, iStatus, iResults );
iState = EDSisInstallerStateInstalling;
SetActive();
}
@@ -312,7 +320,7 @@
IAUPDATE_TRACE("[IAUpdater] RunL() Sis Inst. state INSTALLER BUSY");
IAUPDATE_TRACE_1("[IAUpdater] RunL() Start install for %S", &iSisFile );
- iInstallLauncher->InstallL( iSisFile, iStatus );
+ iInstallLauncher->InstallL( iSisFile, iStatus, iResults );
iState = EDSisInstallerStateInstalling;
SetActive();
--- a/iaupdate/IAD/updater/src/iaupdatersilentlauncher.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/IAD/updater/src/iaupdatersilentlauncher.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -18,7 +18,6 @@
#include "iaupdatersilentlauncher.h"
-#include "SWInstDefs.h"
#include "iaupdaterdefs.h"
#include "iaupdatedebug.h"
@@ -45,7 +44,6 @@
{
iOptionsPckg = Usif::COpaqueNamedParams::NewL();
- iResults = Usif::COpaqueNamedParams::NewL();
UsifSilentInstallOptionsL( iOptionsPckg );
@@ -75,7 +73,6 @@
iLauncher.Close();
delete iOptionsPckg;
- delete iResults;
}
@@ -84,7 +81,8 @@
// Perform installation.
// -----------------------------------------------------------------------------
//
-void CIAUpdaterSilentLauncher::InstallL( const TDesC& aFile, TRequestStatus& aStatus )
+void CIAUpdaterSilentLauncher::InstallL ( const TDesC& aFile,
+ TRequestStatus& aStatus, Usif::COpaqueNamedParams* aResults )
{
IAUPDATE_TRACE("[IAUpdater] CIAUpdaterSilentLauncher::InstallL() begin");
@@ -97,7 +95,7 @@
// Launch the installation
IAUPDATE_TRACE("[IAUpdater] Launch silent install");
- iLauncher.Install( aFile, *iOptionsPckg, *iResults, aStatus );
+ iLauncher.Install( aFile, *iOptionsPckg, *aResults, aStatus );
IAUPDATE_TRACE("[IAUpdater] CIAUpdaterSilentLauncher::InstallL() end");
}
@@ -162,13 +160,18 @@
aOptions->AddIntL( Usif::KSifInParam_AllowDownload, Usif::EAllowed );
// Where to save.
- //aOptions->AddIntL( Usif::KSifInParam_Drive, EDriveC );
+ // Notice! Here we use always the same drive for the IAD.
+ // So, this will not change automatically according to the disk spaces
+ // and when new memory cards are inserted into the phone.
+ // TODO: remove comment when parameter buffer increased in USIF
+ TDriveUnit driveUnit(IAUpdaterDefs::KIAUpdaterDrive);
+ //aOptions->AddIntL( Usif::KSifInParam_Drive, driveUnit );
// Choose the phone language.
+ // TODO: remove comment when parameter buffer increased in USIF
TLanguage lang = User::Language();
- //aOptions->AddIntL( Usif::KSifInParam_Languages, lang ); // User::Language() );
+ //aOptions->AddIntL( Usif::KSifInParam_Languages, lang );
- //aOptions->AddIntL( Usif::KSifInParam_Drive, IAUpdateUtils::DriveToInstallL( aUid, aSize ) );
}
--- a/iaupdate/rom/iaupdate.iby Fri Aug 20 11:39:56 2010 +0300
+++ b/iaupdate/rom/iaupdate.iby Fri Sep 03 17:01:40 2010 +0300
@@ -37,7 +37,12 @@
file=ABI_DIR\BUILD_DIR\iaupdatebg.exe SHARED_LIB_DIR\iaupdatebg.exe
file=ABI_DIR\BUILD_DIR\iaupdatefwupdate.dll SHARED_LIB_DIR\iaupdatefwupdate.dll
+#ifdef _IMAGE_TYPE_RND
+data=ZPRIVATE\2000F85A\iaupdateengineconfig_testing.xml PRIVATE\2000F85A\iaupdateengineconfig.xml
+#else
data=ZPRIVATE\2000F85A\iaupdateengineconfig.xml PRIVATE\2000F85A\iaupdateengineconfig.xml
+#endif //_IMAGE_TYPE_RND
+
data=ZPRIVATE\2000F85A\backup_registration.xml PRIVATE\2000F85A\backup_registration.xml
data=ZSYSTEM\install\iaupdate_stub.sis system\install\iaupdate_stub.sis
--- a/installationservices/swcomponentregistry/group/bld.inf Fri Aug 20 11:39:56 2010 +0300
+++ b/installationservices/swcomponentregistry/group/bld.inf Fri Sep 03 17:01:40 2010 +0300
@@ -21,7 +21,7 @@
@file
*/
-#include "../sqlite_secure/GROUP/BLD.INF"
+#include "../sqlite_secure/group/bld.inf"
PRJ_PLATFORMS
DEFAULT
--- a/ncdengine/engine/engine.pro Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/engine.pro Fri Sep 03 17:01:40 2010 +0300
@@ -54,7 +54,7 @@
INCLUDEPATH += /epoc32/include/platform/mw/cwrt
INCLUDEPATH += /epoc32/include/ecom
- LIBS += -lcommonui -lWrtDownloadMgr -lapmime -lcmmanager -lecom -lapengine -lmsgs -lsmcm -lgsmu -linetprotutil
+ LIBS += -lWrtDownloadMgr -lapmime -lcmmanager -lecom -lapengine -lmsgs -lsmcm -lgsmu -linetprotutil
LIBS += -lhttpfiltercommon -lecom -lhttp -lesock -lcommdb -lsysutil -lhash -lestlib -lestor -lbafl -lplatformenv
LIBS += -lXmlEngineUtils -lXmlEngineDOM -lXmlEngine -lXmlInterface -lxmlframework -lcharconv -ledbms -lefsrv
LIBS += -lncdutils_20019119 -lncddevicemgmt_20019119
--- a/ncdengine/engine/group/bld.inf Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/group/bld.inf Fri Sep 03 17:01:40 2010 +0300
@@ -17,7 +17,7 @@
PRJ_MMPFILES
-catalogsdebug.mmp
+//catalogsdebug.mmp
ncdutils.mmp
ncddevicemgmt.mmp
//catalogsserver.mmp
--- a/ncdengine/engine/group/catalogsserver.mmp Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/group/catalogsserver.mmp Fri Sep 03 17:01:40 2010 +0300
@@ -445,7 +445,6 @@
#endif
LIBRARY apmime.lib // TDataType
-LIBRARY commonui.lib // CDocumentHandler
START WINS
//DEFFILE ../BWINS/catalogsserverwins.def
--- a/ncdengine/engine/group/ncddevicemgmt.mmp Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/group/ncddevicemgmt.mmp Fri Sep 03 17:01:40 2010 +0300
@@ -78,12 +78,10 @@
LIBRARY sisregistryclient.lib // SIS Registry
LIBRARY cone.lib
LIBRARY apmime.lib
-LIBRARY commonui.lib
LIBRARY centralrepository.lib
LIBRARY webutils.lib // CUserAgent
LIBRARY sysutil.lib
LIBRARY apparc.lib
-LIBRARY avkon.lib
LIBRARY etel3rdparty.lib
LIBRARY apgrfx.lib
--- a/ncdengine/engine/src/catalogsdebug.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/src/catalogsdebug.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -332,22 +332,26 @@
VA_LIST list;
VA_START( list, aFmt );
+ HBufC8* buffer = NULL;
+ HBufC* buffer16 = NULL;
+ HBufC8* buffer16to8 = NULL;
+
if( iOutput & EOutputExtLogger )
if( !DebugHeap()->IsEnabled( iType ) ) return;
// Disable debug heap (if installed) to prevent infinite recursion.
TBool debugHeapActive = RCatalogsDebugHeap::Activate( EFalse );
- HBufC8* buffer = HBufC8::New( KCatalogsDebugBufferSize );
+ buffer = HBufC8::New( KCatalogsDebugBufferSize );
if ( buffer == NULL ) goto exit1;
PrintGeneral( buffer->Des() );
- HBufC* buffer16 = HBufC::New( KCatalogsDebugBufferSize );
+ buffer16 = HBufC::New( KCatalogsDebugBufferSize );
if ( buffer16 == NULL ) goto exit2;
buffer16->Des().AppendFormatList( aFmt, list );
- HBufC8* buffer16to8 = HBufC8::New( buffer16->Length() );
+ buffer16to8 = HBufC8::New( buffer16->Length() );
if ( buffer16to8 == NULL ) goto exit3;
buffer16to8->Des().Copy( *buffer16 );
--- a/ncdengine/engine/transport/inc/catalogshttpdownload.h Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/transport/inc/catalogshttpdownload.h Fri Sep 03 17:01:40 2010 +0300
@@ -481,7 +481,7 @@
TBool ContainsData( const HBufC* aDes ) const;
/**
- * Gets the correct extension for iTempFilename by using dochandler
+ * Gets the correct extension for iTempFilename
* and ContentType() and sets it to iConfig
*/
void UpdateExtensionL();
--- a/ncdengine/engine/transport/inc/catalogshttpdownloadmanagerimpl.h Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/transport/inc/catalogshttpdownloadmanagerimpl.h Fri Sep 03 17:01:40 2010 +0300
@@ -209,8 +209,6 @@
CCatalogsHttpConnectionManager& ConnectionManager();
-
- CDocumentHandler& DocumentHandler();
TInt NewDownloadId();
--- a/ncdengine/engine/transport/inc/catalogshttpsessionmanager.h Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/transport/inc/catalogshttpsessionmanager.h Fri Sep 03 17:01:40 2010 +0300
@@ -27,7 +27,6 @@
class MCatalogsHttpObserver;
class CCatalogsHttpConnectionCreator;
class CCatalogsHttpConnectionManager;
-class CDocumentHandler;
class MCatalogsHttpSessionManager
{
@@ -69,12 +68,6 @@
virtual void SetResumeMode( TBool aResumeQueued ) = 0;
/**
- * Document handler getter
- * @return Document handler instance
- */
- virtual CDocumentHandler& DocumentHandler() = 0;
-
- /**
* Disconnects network connection if it is not used by any
* client anymore
*
--- a/ncdengine/engine/transport/inc/catalogshttpsessionmanagerimpl.h Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/transport/inc/catalogshttpsessionmanagerimpl.h Fri Sep 03 17:01:40 2010 +0300
@@ -25,7 +25,6 @@
#include "catalogsconnection.h"
class CCatalogsNetworkManager;
-class CDocumentHandler;
class CCatalogsHttpSessionManager : public CActive,
public MCatalogsHttpSessionManager,
@@ -60,9 +59,7 @@
/**
* NewL
*/
- static CCatalogsHttpSessionManager* NewL(
- CDocumentHandler& aDocHandler );
-
+ static CCatalogsHttpSessionManager* NewL( );
/**
* Destructor
@@ -113,9 +110,6 @@
static CCatalogsNetworkManager& NetworkManagerL();
-
- CDocumentHandler& DocumentHandler();
-
TBool DisconnectL();
public:
@@ -165,8 +159,7 @@
/**
* Constructor
*/
- CCatalogsHttpSessionManager( CDocumentHandler& aDocHandler );
-
+ CCatalogsHttpSessionManager();
void ConstructL();
private:
@@ -237,7 +230,6 @@
// APN
TBool iSwitchApTimer;
- CDocumentHandler& iDocHandler; // not owned
TCatalogsConnectionMethod iLatestConnectionMethod;
};
--- a/ncdengine/engine/transport/inc/catalogshttpstack.h Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/transport/inc/catalogshttpstack.h Fri Sep 03 17:01:40 2010 +0300
@@ -29,7 +29,7 @@
// Constants
-const TInt KRequestTimeoutMicroseconds( 180000000 );
+const TInt KRequestTimeoutMicroseconds( 60000000 );
// Forward declarations
class RHTTPSession;
--- a/ncdengine/engine/transport/inc/catalogstransportimpl.h Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/transport/inc/catalogstransportimpl.h Fri Sep 03 17:01:40 2010 +0300
@@ -24,7 +24,6 @@
class MCatalogsTransportSession;
class CCatalogsHttpSessionManager;
-class CDocumentHandler;
/**
* Catalogs Transport implementation
@@ -36,11 +35,9 @@
/**
* Creator
*
- * @param aDocHandler Document handler
* @return A new CCatalogsTransport-object
*/
- static CCatalogsTransport* NewL( CDocumentHandler& aDocHandler );
-
+ static CCatalogsTransport* NewL();
/**
* Destructor
@@ -85,7 +82,7 @@
/**
* 2nd phase constructor
*/
- void ConstructL( CDocumentHandler& aDocHandler );
+ void ConstructL();
private:
--- a/ncdengine/engine/transport/src/catalogshttpdownload.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/transport/src/catalogshttpdownload.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -20,7 +20,6 @@
#include <bautils.h>
#include <e32err.h>
-#include <DocumentHandler.h>
#include <apmstd.h> // TDataType
#include <escapeutils.h>
#include <downloadmanager.h>
@@ -878,8 +877,11 @@
{
errorId = WRT::ConnectionFailed;
}
+ else
+ {
+ errorId = iDownload->attribute(LastError).toInt();
+ }
SetTransferring( EFalse );
- errorId = iDownload->attribute(LastError).toInt();
if ( errorId > 0 )
{
// Symbian error codes are always negative numbers
@@ -2447,8 +2449,8 @@
CleanupStack::PopAndDestroy( &cmManager );
if ( iOwner.GetDownloadManager() )
{
- iOwner.GetDownloadManager()->attribute(AccessPoints).toStringList();
- iOwner.GetDownloadManager()->setAttribute(AccessPoint, destname);
+ //iOwner.GetDownloadManager()->attribute(AccessPoints).toStringList();
+ //iOwner.GetDownloadManager()->setAttribute(AccessPoint, destname);
}
}
@@ -2558,7 +2560,7 @@
if ( !iConfig->Filename().Length() )
{
- // Update filename extension by using dochandler
+ // Update filename extension
if ( iConfig->Options() & ECatalogsHttpDisableHeadRequest )
{
UpdateExtensionL();
@@ -2623,7 +2625,7 @@
// ---------------------------------------------------------------------------
-// Updates file extension by using dochandler
+// Updates file extension
// ---------------------------------------------------------------------------
//
void CCatalogsHttpDownload::UpdateExtensionL()
@@ -2644,7 +2646,9 @@
ReplaceExtension( filename, KWidgetExtension );
}
else
- iOwner.DocumentHandler().CheckFileNameExtension( filename, type );
+ {
+ ReplaceExtension( filename, KNativeExtension );
+ }
iConfig->SetFilenameL( filename );
}
--- a/ncdengine/engine/transport/src/catalogshttpdownloadmanagerimpl.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/transport/src/catalogshttpdownloadmanagerimpl.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -817,17 +817,6 @@
return iConnectionManager;
}
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CDocumentHandler& CCatalogsHttpDownloadManager::DocumentHandler()
- {
- return iManager.DocumentHandler();
- }
-
-
// ---------------------------------------------------------------------------
// Event handling
// ---------------------------------------------------------------------------
--- a/ncdengine/engine/transport/src/catalogshttpsessionmanagerimpl.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/transport/src/catalogshttpsessionmanagerimpl.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -57,11 +57,10 @@
// NewL
// ---------------------------------------------------------------------------
//
-CCatalogsHttpSessionManager* CCatalogsHttpSessionManager::NewL(
- CDocumentHandler& aDocHandler )
+CCatalogsHttpSessionManager* CCatalogsHttpSessionManager::NewL()
{
CCatalogsHttpSessionManager* self = new( ELeave )
- CCatalogsHttpSessionManager( aDocHandler );
+ CCatalogsHttpSessionManager();
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop( self );
@@ -328,16 +327,6 @@
return *iNetworkManager;
}
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CDocumentHandler& CCatalogsHttpSessionManager::DocumentHandler()
- {
- return iDocHandler;
- }
-
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
@@ -411,17 +400,14 @@
// CCatalogsHttpSessionManager
// ---------------------------------------------------------------------------
//
-CCatalogsHttpSessionManager::CCatalogsHttpSessionManager(
- CDocumentHandler& aDocHandler ) :
+CCatalogsHttpSessionManager::CCatalogsHttpSessionManager() :
CActive( CActive::EPriorityStandard ),
iRefCount( 1 ),
- iResumeQueued( ETrue ),
- iDocHandler( aDocHandler )
+ iResumeQueued( ETrue )
{
CActiveScheduler::Add( this );
}
-
// ---------------------------------------------------------------------------
// ResumeOperation
// ---------------------------------------------------------------------------
--- a/ncdengine/engine/transport/src/catalogstransportimpl.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/engine/transport/src/catalogstransportimpl.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -32,16 +32,14 @@
// NewL
// ---------------------------------------------------------------------------
//
-CCatalogsTransport* CCatalogsTransport::NewL( CDocumentHandler& aDocHandler )
+CCatalogsTransport* CCatalogsTransport::NewL()
{
CCatalogsTransport* self = new( ELeave ) CCatalogsTransport();
CleanupStack::PushL( self );
- self->ConstructL( aDocHandler );
+ self->ConstructL();
CleanupStack::Pop( self );
return self;
}
-
-
// ---------------------------------------------------------------------------
// Destructor
// ---------------------------------------------------------------------------
@@ -244,10 +242,10 @@
// ---------------------------------------------------------------------------
// 2nd phase constructor
// ---------------------------------------------------------------------------
-//
-void CCatalogsTransport::ConstructL( CDocumentHandler& aDocHandler )
+//
+void CCatalogsTransport::ConstructL()
{
DLTRACEIN( ( "" ) );
- iHttpSessionManager = CCatalogsHttpSessionManager::NewL( aDocHandler );
+ iHttpSessionManager = CCatalogsHttpSessionManager::NewL();
DLTRACEOUT( ( "" ) );
}
--- a/ncdengine/inc/catalogsconstants.h Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/inc/catalogsconstants.h Fri Sep 03 17:01:40 2010 +0300
@@ -161,6 +161,9 @@
// File extension for widget
_LIT( KWidgetExtension, ".wgz" );
+// File extension for native packages
+_LIT( KNativeExtension, ".sis" );
+
// Default widget version number
_LIT( KDefVersion, "000" );
--- a/ncdengine/provider/deviceinteraction/inc/ncdinstallationservice.h Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/inc/ncdinstallationservice.h Fri Sep 03 17:01:40 2010 +0300
@@ -19,10 +19,6 @@
#ifndef M_NCD_INSTALLATION_SERVICE_H
#define M_NCD_INSTALLATION_SERVICE_H
-// SwiUI namespace contains install options
-// and install options package definitions
-// that are used for the silent install.
-//#include <SWInstDefs.h>
#include <usif/sif/sifcommon.h>
#include "ncditempurpose.h"
@@ -32,8 +28,6 @@
class TDataType;
class RFile;
class RFs;
-class CDocumentHandler;
-
/**
* Theme SIS UID
@@ -270,12 +264,6 @@
*/
virtual HBufC* RecognizeDataL( const TDesC& aFileName ) = 0;
-
- /**
- * Document handler getter
- * @return Document handler instance
- */
- virtual CDocumentHandler& DocumentHandler() = 0;
};
#endif // M_NCD_INSTALLATION_SERVICE_H
--- a/ncdengine/provider/deviceinteraction/inc/ncdinstallationserviceimpl.h Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/inc/ncdinstallationserviceimpl.h Fri Sep 03 17:01:40 2010 +0300
@@ -20,7 +20,6 @@
#define C_NCD_INSTALLATION_SERVICE_IMPL_H
#include <e32base.h>
-#include <AknServerApp.h>
#include <AknsSrvClient.h>
#include <swi/sisregistrysession.h>
#include <swi/sisregistryentry.h>
@@ -36,8 +35,6 @@
#include "ncdwidgetregistrydata.h"
-class CDocumentHandler;
-
class MNcdInstallationServiceObserver;
class TCatalogsVersion;
class CNcdActiveOperationObserver;
@@ -49,7 +46,6 @@
*/
class CNcdInstallationService : public CBase,
public MNcdInstallationService,
- public MAknServerAppExitObserver,
public MNcdAsyncOperationObserver,
public MNcdAsyncSilentInstallObserver
{
@@ -219,12 +215,7 @@
* @see MNcdInstallationService::WriteJadL()
*/
HBufC* WriteJadL( const TDesC& aJarFileName, const TDesC8& aJad );
-
-
- /**
- * @see MNcdInstallationService::DocumentHandler()
- */
- CDocumentHandler& DocumentHandler();
+
public: // From MNcdAsyncOperationObserver
@@ -403,7 +394,6 @@
private: // Data
TBool iBusy;
- CDocumentHandler* iDocHandler;
MNcdInstallationServiceObserver* iObserver;
// Registry session
Swi::RSisRegistrySession iRegistrySession;
@@ -446,7 +436,6 @@
CNcdActiveOperationObserver* iInstallStatusObserver;
- //SwiUI::RSWInstLauncher iInstaller;
Usif::RSoftwareInstall iInstaller;
Usif::COpaqueNamedParams* iArguments;
Usif::COpaqueNamedParams* iResults;
--- a/ncdengine/provider/deviceinteraction/inc/ncdsilentinstallactiveobserver.h Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/inc/ncdsilentinstallactiveobserver.h Fri Sep 03 17:01:40 2010 +0300
@@ -145,7 +145,7 @@
/**
- * @return SwiUI::RSWInstSilentLauncher& The launcher
+ * @return Usif::RSoftwareInstall& The launcher
* that handles the installation operations that this
* class object observes. Ownerhsip is not transferred.
*/
@@ -177,7 +177,6 @@
// The silent launcher handles the install operations that
// this class object observes.
- // SwiUI::RSWInstSilentLauncher iSilentLauncher;
Usif::RSoftwareInstall iInstaller;
Usif::COpaqueNamedParams* iResults;
Usif::COpaqueNamedParams* iArguments;
--- a/ncdengine/provider/deviceinteraction/src/ncdinstallationserviceimpl.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/src/ncdinstallationserviceimpl.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -18,7 +18,6 @@
#include "ncdinstallationserviceimpl.h"
-#include <DocumentHandler.h>
#include <apmstd.h>
#include <apmrec.h>
#include <bautils.h>
@@ -100,7 +99,6 @@
DLTRACEIN((""));
delete iSilentInstallActiveObserver;
iSilentInstallActiveObserver = NULL;
- delete iDocHandler;
iRegistrySession.Close();
iFs.Close();
iAknsSrv.Close();
@@ -147,9 +145,6 @@
iResults = 0;
iArguments = 0;
- iDocHandler = CDocumentHandler::NewL();
- iDocHandler->SetExitObserver( this );
-
User::LeaveIfError( iFs.Connect() );
User::LeaveIfError( iFs.ShareProtected() );
User::LeaveIfError( iRegistrySession.Connect() );
@@ -878,17 +873,6 @@
return jadFileName;
}
-
-// ---------------------------------------------------------------------------
-// Documenthandler getter
-// ---------------------------------------------------------------------------
-//
-CDocumentHandler& CNcdInstallationService::DocumentHandler()
- {
- return *iDocHandler;
- }
-
-
// ---------------------------------------------------------------------------
// Callback function of MNcdAsyncOperationObserver interface
// This is called when an async operation has finished.
@@ -1293,8 +1277,6 @@
{
DLTRACEIN(( _L("iBusy=%d, MIME: %S"),iBusy, &aMimeType ));
DASSERT( iObserver );
- DASSERT( iDocHandler );
-
// Check if some installation is already in progress.
if ( iBusy )
@@ -1389,7 +1371,6 @@
{
DLINFO(("Normal install"));
InitializeInstallerL();
- //iCancelCode = SwiUI::ERequestInstallHandle;
if ( !iArguments )
{
@@ -1403,7 +1384,7 @@
iArguments->AddIntL( Usif::KSifInParam_InstallSilently, EFalse );
iInstaller.Install( aFile, *iArguments, *iResults, iInstallStatusObserver->iStatus );
- //iInstaller.Install( iInstallStatusObserver->iStatus, aFile );
+
iInstallStatusObserver->StartToObserve();
}
else
@@ -1424,55 +1405,12 @@
DLINFO(("Installing content"));
// File is some common format.
iInstallType = EFileInstall;
- TDataType dataType;
-
- if ( aMimeType != KNullDesC )
- {
- // If mime type is given, it will be used in document handler.
- HBufC8* tempBuf = Des16ToDes8LC( aMimeType );
- dataType = TDataType( *tempBuf );
- CleanupStack::PopAndDestroy( tempBuf );
- DLINFO(("DataType: %S", &dataType.Des8() ));
- }
-
- TInt docHandlerError( KErrNone );
- DLINFO(("Normal install"));
- // Have to use CopyL since MoveL works only with filepaths
- // We can't use SilentMoveL either
- docHandlerError =
- iDocHandler->CopyL( aFile,
- KNullDesC(),
- dataType,
- KEntryAttNormal );
+ // content not supported
+ iObserver->InstallationCompleteL( KNullDesC, KNullUid, KErrNotSupported );
+
+ }
- DLTRACE(("After move"));
- if( docHandlerError != KErrNone )
- {
- DLINFO(("error=%d",docHandlerError));
-
- // Use KErrAbort for user cancellation
- if ( docHandlerError == KUserCancel )
- {
- docHandlerError = KErrAbort;
- }
- iObserver->InstallationCompleteL( KNullDesC, KNullUid, docHandlerError );
- }
- else
- {
- DLTRACE(("Installation successful"));
-
- RBuf installFileName;
- CleanupClosePushL( installFileName );
-
- installFileName.CreateL( KMaxPath );
-
- User::LeaveIfError( iDocHandler->GetPath( installFileName ) );
- iObserver->InstallationCompleteL( installFileName, KNullUid, KErrNone );
- CleanupStack::PopAndDestroy( &installFileName );
-
- }
- }
DLTRACEOUT((""));
}
@@ -1527,7 +1465,6 @@
{
DLTRACE(("Installing JAD+JAR"));
// JAD+JAR install
- //iCancelCode = SwiUI::ERequestInstall;
if ( !iArguments )
{
iArguments = Usif::COpaqueNamedParams::NewL();
@@ -1540,13 +1477,11 @@
iArguments->AddIntL( Usif::KSifInParam_InstallSilently, EFalse );
iInstaller.Install( *iJadFileName, *iArguments, *iResults, iInstallStatusObserver->iStatus );
- //iInstaller.Install( iInstallStatusObserver->iStatus, *iJadFileName );
}
else
{
DLTRACE(("Installing JAR"));
// JAR install
- //iCancelCode = SwiUI::ERequestInstallHandle;
if ( !iArguments )
{
iArguments = Usif::COpaqueNamedParams::NewL();
@@ -1560,7 +1495,6 @@
iInstaller.Install( aFile, *iArguments, *iResults, iInstallStatusObserver->iStatus );
- //iInstaller.Install( iInstallStatusObserver->iStatus, aFile );
}
iInstallStatusObserver->StartToObserve();
@@ -1620,7 +1554,6 @@
{
DLINFO(("Normal install"));
InitializeInstallerL();
- //iCancelCode = SwiUI::ERequestInstallHandle;
if ( !iArguments )
{
iArguments = Usif::COpaqueNamedParams::NewL();
@@ -1633,7 +1566,6 @@
iArguments->AddIntL( Usif::KSifInParam_InstallSilently, EFalse );
iInstaller.Install(aFile, *iArguments, *iResults, iInstallStatusObserver->iStatus );
- //iInstaller.Install( iInstallStatusObserver->iStatus, aFile );
iInstallStatusObserver->StartToObserve();
}
else
@@ -1661,12 +1593,6 @@
iInstallStatusObserver = CNcdActiveOperationObserver::NewL( *this );
User::LeaveIfError( iInstaller.Connect() );
- /*
- if ( !iInstaller.Handle() )
- {
- User::LeaveIfError( iInstaller.Connect() );
- }
- */
}
@@ -1677,13 +1603,11 @@
void CNcdInstallationService::CancelInstall()
{
DLTRACEIN((""));
- //if ( iInstallStatusObserver &&
- // iInstaller.Handle() )
+
if ( iInstallStatusObserver )
{
DLTRACE(("Cancelling installation"));
iInstaller.CancelOperation();
- //iInstaller.CancelAsyncRequest( iCancelCode );
}
DeletePtr( iInstallStatusObserver );
--- a/ncdengine/provider/deviceinteraction/src/ncdsilentinstallactiveobserver.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/src/ncdsilentinstallactiveobserver.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -156,16 +156,17 @@
// The launcher is shown in the application list.
// So, it would not be nice to leave it there after operation is completed.
-
+ /* Uncomment for testing
TInt ErrCategory = 0;
TInt ErrCode = 0;
TInt ExtendedErrCode =0;
- TBool ret = iResults->GetIntByNameL(Usif::KSifOutParam_ErrCategory, ErrCategory);
- ret = iResults->GetIntByNameL(Usif::KSifOutParam_ErrCode, ErrCode);
- ret = iResults->GetIntByNameL(Usif::KSifOutParam_ExtendedErrCode, ExtendedErrCode);
+ ErrCategory = iResults->GetIntByNameL(Usif::KSifOutParam_ErrCategory, ErrCategory);
+ ErrCode = iResults->GetIntByNameL(Usif::KSifOutParam_ErrCode, ErrCode);
+ ExtendedErrCode = iResults->GetIntByNameL(Usif::KSifOutParam_ExtendedErrCode, ExtendedErrCode);
SilentLauncher().Close();
-
+ */
+
TInt errorCode( ConvertErrorCode( iStatus.Int() ) );
// Just forward the information to the observer.
@@ -180,7 +181,6 @@
Usif::RSoftwareInstall& CNcdSilentInstallActiveObserver::SilentLauncher()
{
- // return iSilentLauncher;
return iInstaller;
}
--- a/ncdengine/provider/server/inc/ncdfavoritemanagerimpl.h Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/provider/server/inc/ncdfavoritemanagerimpl.h Fri Sep 03 17:01:40 2010 +0300
@@ -192,8 +192,6 @@
MNcdStorageManager& iStorageManager;
protected:
-
- class CNcdTemporaryFavorites;
CNcdFavoriteManager( CNcdGeneralManager& aGeneralManager );
--- a/ncdengine/provider/server/inc/ncdloadnodeoperationimpl.h Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/provider/server/inc/ncdloadnodeoperationimpl.h Fri Sep 03 17:01:40 2010 +0300
@@ -89,6 +89,7 @@
public MCatalogsHttpObserver,
public MNcdParserDataBlocksObserver
{
+protected:
class CNcdNodeIconMap;
public:
--- a/ncdengine/provider/server/src/ncdprovidermanager.cpp Fri Aug 20 11:39:56 2010 +0300
+++ b/ncdengine/provider/server/src/ncdprovidermanager.cpp Fri Sep 03 17:01:40 2010 +0300
@@ -79,8 +79,7 @@
iEngineRootPath = WritableEnginePathL( CNcdProviderUtils::FileSession() );
// Create transport
- iTransport = CCatalogsTransport::NewL(
- CNcdProviderUtils::InstallationServiceL().DocumentHandler() );
+ iTransport = CCatalogsTransport::NewL();
iStorageManager = CNcdStorageManager::NewL(
CNcdProviderUtils::FileSession(), *iEngineRootPath );
--- a/package_definition.xml Fri Aug 20 11:39:56 2010 +0300
+++ b/package_definition.xml Fri Sep 03 17:01:40 2010 +0300
@@ -1,6 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition schema="3.0.0">
+<SystemDefinition schema="3.0.0" xmlns:qt="http://www.nokia.com/qt">
<package id="appinstall" name="Application Installation" levels="tool framework generic api">
+ <collection id="appinstall_plat" name="Application Installation Platform Interfaces" level="api">
+ <component id="iaupdate_api" name="IA Update API" class="api" filter="s60">
+ <meta rel="Api" href="appinstall_plat/iaupdate_api/iaupdate_api.metaxml"/>
+ <unit bldFile="appinstall_plat/iaupdate_api/group"/>
+ </component>
+ <component id="task_plugin_api" name="Task Plugin API" class="api" filter="s60">
+ <meta rel="Api" href="appinstall_plat/task_plugin_api/task_plugin_api.metaxml"/>
+ <unit bldFile="appinstall_plat/task_plugin_api/group"/>
+ </component>
+ <component id="sw_installer_common_ui_api" name="SW Installer Common UI API" class="api" filter="s60">
+ <meta rel="Api" href="appinstall_plat/sw_installer_common_ui_api/sw_installer_common_ui_api.metaxml"/>
+ <unit bldFile="appinstall_plat/sw_installer_common_ui_api/group"/>
+ </component>
+ <component id="sw_installer_launcher_api" name="SW Installer Launcher API" class="api" filter="s60">
+ <meta rel="Api" href="appinstall_plat/sw_installer_launcher_api/sw_installer_launcher_api.metaxml"/>
+ <unit bldFile="appinstall_plat/sw_installer_launcher_api/group"/>
+ </component>
+ <component id="task_management_api" name="Task Management API" class="api" filter="s60">
+ <meta rel="Api" href="appinstall_plat/task_management_api/task_management_api.metaxml"/>
+ <unit bldFile="appinstall_plat/task_management_api/group"/>
+ </component>
+ <component id="sw_installer_ui_plugin_api" name="SW Installer UI Plugin API" class="api" filter="s60">
+ <meta rel="Api" href="appinstall_plat/sw_installer_ui_plugin_api/sw_installer_ui_plugin_api.metaxml"/>
+ <unit bldFile="appinstall_plat/sw_installer_ui_plugin_api/group"/>
+ </component>
+ <component id="sw_installer_cr_keys" name="SW Installer CR Keys" class="api" filter="s60">
+ <meta rel="Api" href="appinstall_plat/sw_installer_cr_keys/sw_installer_cr_keys.metaxml"/>
+ <unit bldFile="appinstall_plat/sw_installer_cr_keys/group"/>
+ </component>
+ <component id="sw_installer_ps_keys" name="SW Installer PS Keys" class="api" filter="s60">
+ <meta rel="Api" href="appinstall_plat/sw_installer_ps_keys/sw_installer_ps_keys.metaxml"/>
+ <unit bldFile="appinstall_plat/sw_installer_ps_keys/group"/>
+ </component>
+ <component id="sifui_api" name="STIF UI API" class="api" filter="s60">
+ <unit bldFile="appinstall_plat/sifui_api/group"/>
+ </component>
+ </collection>
+ <collection id="appinstall_pub" name="Application Installation Public Interfaces" level="api">
+ <component id="startup_list_management_api" name="Startup List Management API" class="api" filter="s60">
+ <meta rel="Api" href="appinstall_pub/startup_list_management_api/startup_list_management_api.metaxml"/>
+ <unit bldFile="appinstall_pub/startup_list_management_api/group"/>
+ </component>
+ </collection>
+ <collection id="ncdengine" name="Nokia Content Discover" level="framework">
+ <component id="ncdengine_build" filter="s60" name="NCD Engine" introduced="^1">
+ <unit bldFile="ncdengine/group"/>
+ </component>
+ <component id="ncdengine_qt_build" filter="s60" name="NCD Qt Engine">
+ <unit bldFile="ncdengine/engine" qt:proFile="engine.pro"/>
+ </component>
+ </collection>
+ <collection id="appinstaller" name="Application Installer" level="generic">
+ <component id="appinstui" filter="s60" name="Application Installer UI" introduced="^2">
+ <unit bldFile="appinstaller/appinstui/group"/>
+ </component>
+ <component id="appinstui_qt" filter="s60" name="Application Installer Qt UI" introduced="^2">
+ <unit bldFile="appinstaller/appinstui" qt:proFile="appinstui.pro"/>
+ </component>
+ </collection>
+ <collection id="iaupdateapi_stub" name="IA Update API Stub" level="api">
+ <!-- the collection is really a component. Move down a directory.-->
+ <component id="iaupdateapi_stub_build" name="IA Update API Stub Build" filter="s60" introduced="^2">
+ <unit bldFile="iaupdateapi_stub/group"/>
+ </component>
+ </collection>
+ <collection id="iaupdate" name="Independent Apps Update" level="api">
+ <!-- Should reorganise into actual components -->
+ <component id="iad" name="Independent App delivery" filter="s60" introduced="^4" purpose="development">
+ <unit bldFile="iaupdate" qt:proFile="iaupdate.pro"/>
+ </component>
+ <component id="iaupdate_build" filter="s60" name="IA Update Build" introduced="^2">
+ <meta rel="config">
+ <defined condition="FF_IAUPDATE"/>
+ </meta>
+ <unit bldFile="iaupdate/group"/>
+ </component>
+ </collection>
<collection id="installationservices" name="Installation Services" level="generic">
<component id="swi" name="Secure Software Install" purpose="optional">
<unit bldFile="installationservices/swi/group" mrp="installationservices/swi/group/security_swi.mrp"/>
@@ -44,5 +121,13 @@
<unit bldFile="secureswitools/swisistools/group" mrp="secureswitools/swisistools/group/security_sistools.mrp"/>
</component>
</collection>
+ <collection id="appinstall_info" name="Application Installation Info" level="api">
+ <component id="appinstall_test" filter="s60,test,api_test" name="Application Installation Test" purpose="development">
+ <unit bldFile="tsrc/group"/>
+ </component>
+ <component id="appinstall_metadata" name="Application Installation Metadata" class="config" introduced="^2" purpose="development" target="desktop">
+ <unit mrp="appinstall_info/appinstall_metadata/appinstall_metadata.mrp"/>
+ </component>
+ </collection>
</package>
</SystemDefinition>
--- a/package_map.xml Fri Aug 20 11:39:56 2010 +0300
+++ b/package_map.xml Fri Sep 03 17:01:40 2010 +0300
@@ -1,2 +1,1 @@
-<?xml version="1.0"?>
-<PackageMap root="sf" layer="mw" />
\ No newline at end of file
+<PackageMap root="sf" layer="mw"/>