--- a/taskswitcher/server/src/tsdatalist.cpp Fri Sep 17 08:32:18 2010 +0300
+++ b/taskswitcher/server/src/tsdatalist.cpp Mon Oct 04 00:38:31 2010 +0300
@@ -49,11 +49,13 @@
*/
CTsDataList* CTsDataList::NewL( MTsResourceManager& aResources,
MTsWindowGroupsMonitor& aMonitor,
- MTsDataObserver& aObserver )
+ MTsDataObserver& aObserver,
+ TsEnv& aEnv )
{
CTsDataList* self = new (ELeave) CTsDataList( aResources,
aMonitor,
- aObserver );
+ aObserver,
+ aEnv);
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop( self );
@@ -66,11 +68,13 @@
*/
CTsDataList::CTsDataList(MTsResourceManager& aResources,
MTsWindowGroupsMonitor &aMonitor,
- MTsDataObserver& aObserver )
+ MTsDataObserver& aObserver,
+ TsEnv& aEnv)
:
CTsWindowGroupsObserver( aMonitor ),
iResources( aResources ),
- iObserver( aObserver )
+ iObserver( aObserver ),
+ iEnv( aEnv )
{
}
@@ -120,13 +124,13 @@
* @see MTsWindowGroupsObserver HandleWindowGroupChanged
*/
void CTsDataList::HandleWindowGroupChanged(
- MTsResourceManager &,
- const TArray<RWsSession::TWindowGroupChainInfo>& aWgList)
+ MTsResourceManager &/*aResources*/,
+ const MTsRunningApplicationStorage& aStorage)
{
TRAP_IGNORE(RDebug::Print(_L("[TaskSwitcher] processing started"));
RTsFswArray newAppsList;
CleanupResetAndDestroyPushL(newAppsList);
- CollectAppsL(newAppsList, aWgList);
+ CollectAppsL(newAppsList, aStorage);
RDebug::Print(_L("[TaskSwitcher] gathered app info"));
FitDataToListL(newAppsList);
CleanupStack::PopAndDestroy(&newAppsList);
@@ -140,39 +144,33 @@
* @param aAppsList array to add to
*/
void CTsDataList::CollectAppsL(RTsFswArray& aAppsList,
- const TArray<RWsSession::TWindowGroupChainInfo> &aWgList)
+ const MTsRunningApplicationStorage& aStorage)
{
- for( TInt i(0); i < aWgList.Count(); ++i )
+ for( TInt i(0); i < aStorage.Count(); ++i )
{
TTsEntryKey key;
- TInt err = TsEntryKeyGeneraror::Generate(key, aWgList[i].iId, aWgList);
+ TInt err = TsEntryKeyGeneraror::Generate( key,
+ aStorage[i].WindowGroupId(),
+ aStorage );
//skip this entry if it is already on list or generate key failed
if( err!=KErrNone || FindEntry( aAppsList, key ) >= 0 )
{
continue;
}
- // get window group name
- CApaWindowGroupName* windowName =
- CApaWindowGroupName::NewLC( iResources.WsSession(),
- key.WindowGroupId() );
- TUid appUid = windowName->AppUid();
-
- // get screen number (-1=console, 0=main screen, 1=cover ui)
+ // get screen number (-1=console, 0=main screen, 1=cover ui)
TInt appScreen = 0;
TInt scrNumErr =
iResources.ApaSession().GetDefaultScreenNumber( appScreen,
- appUid );
+ aStorage[i].UidL() );
- if( appUid.iUid &&
- !windowName->Hidden() &&
+ if( aStorage[i].UidL().iUid &&
+ !aStorage[i].IsHiddenL() &&
(appScreen == 0 || appScreen == -1) &&
scrNumErr == KErrNone )
{
- AddEntryL( key, appUid, windowName, aAppsList );
+ AddEntryL( key, aStorage[i], aAppsList );
}
-
- CleanupStack::PopAndDestroy( windowName );
}
}
@@ -180,33 +178,28 @@
/**
* Called from CollectTasksL for each entry in the task list.
* @param aKey entry key
- * @param aAppUid application uid
- * @param aWgName window group name or NULL
+ * @param aRunningApp running application entry
* @param aNewList list to add to
*/
void CTsDataList::AddEntryL( const TTsEntryKey& aKey,
- const TUid& aAppUid,
- CApaWindowGroupName* aWgName,
+ const MTsRunningApplication& aRunningApp,
RTsFswArray& aNewList )
{
- CTsEntry* entry = CTsEntry::NewLC( aKey, iObserver );
+ CTsEntry* entry = CTsEntry::NewLC( aKey, iObserver, &iEnv );
// check if present in old list and if yes then take some of the old data
TBool found = ConsiderOldDataL( aKey );
// if not present previously then find out app name
// and check if screenshot is already available
if( !found )
{
- entry->SetAppUid(aAppUid);
- HBufC* name = FindAppNameLC( aWgName, aAppUid, aKey.WindowGroupId() );
+ entry->SetAppUid(aRunningApp.UidL());
+ HBufC* name = FindAppNameLC( aRunningApp );
entry->SetAppNameL(*name);
CleanupStack::PopAndDestroy( name );
//transfer ownership to entry
- entry->SetAppIcon( GetAppIconL( aAppUid ) );
+ entry->SetAppIcon( GetAppIconL( aRunningApp.UidL() ) );
}
- if(aWgName)
- {
- entry->SetCloseableApp( !aWgName->IsSystem() );
- }
+ entry->SetCloseableApp( !aRunningApp.IsSystemL());
// add to new list, ownership is transferred
aNewList.AppendL( entry );
CleanupStack::Pop( entry );
@@ -240,26 +233,24 @@
* @param aWgId window group id
* @return application name, ownership transferred to caller
*/
-HBufC* CTsDataList::FindAppNameLC( CApaWindowGroupName* aWindowName,
- const TUid& aAppUid,
- TInt aWgId )
+HBufC* CTsDataList::FindAppNameLC( const MTsRunningApplication& aRunningApp )
{
//Retrieve the app name
TApaAppInfo info;
- iResources.ApaSession().GetAppInfo( info, aAppUid );
+ iResources.ApaSession().GetAppInfo( info, aRunningApp.UidL() );
TPtrC caption = info.iShortCaption;
HBufC* tempName( 0 );
- if (!caption.Length() && aWindowName) // if not set - use thread name instead
+ if (!caption.Length() ) // if not set - use thread name instead
{
- if (aWindowName->Caption().Length())
+ if( aRunningApp.CaptionL().Length() )
{
- tempName = aWindowName->Caption().AllocLC();
+ tempName = aRunningApp.CaptionL().AllocLC();
}
else
{
TThreadId threadId;
- if(KErrNone == iResources.WsSession().GetWindowGroupClientThreadId( aWgId, threadId ) )
+ if(KErrNone == iResources.WsSession().GetWindowGroupClientThreadId( aRunningApp.WindowGroupId(), threadId ) )
{
RThread thread;
CleanupClosePushL( thread );