diff -r 1f0034e370aa -r 71ad690e91f5 javaextensions/globalindicators/src/CGlobalIndicators.cpp --- a/javaextensions/globalindicators/src/CGlobalIndicators.cpp Fri Sep 17 16:44:34 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,220 +0,0 @@ -/* -* Copyright (c) 2007 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: Controls the native global indicators. -* -*/ - - -// INCLUDE FILES -#include -#include // Publish & Subscribe -#include -#include "CGlobalIndicators.h" -#include "com_nokia_mid_ui_GlobalIndicators.h" -#include "logger.h" - -// CONSTANTS -namespace -{ -// These constants are from JNI header, just defined shorter names here -// If any other values are used for the indicator or its value, they are -// passed directly to P&S. -const TInt KPropertyGlobalMailIndicator = - com_nokia_mid_ui_GlobalIndicators_MAIL_INDICATOR; - -const TInt KPropertyGlobalChatIndicator = - com_nokia_mid_ui_GlobalIndicators_CHAT_INDICATOR; - -const TInt KPropertyGlobalIndicatorUninitialized = - com_nokia_mid_ui_GlobalIndicators_INDICATOR_UNINITIALIZED; - -const TInt KPropertyGlobalIndicatorHide = - com_nokia_mid_ui_GlobalIndicators_INDICATOR_HIDE; - -const TInt KPropertyGlobalIndicatorShow = - com_nokia_mid_ui_GlobalIndicators_INDICATOR_SHOW; -} - -// Required capabilites -// WriteDeviceData // for setting the email status using RProperty::Set() -// ReadDeviceData // for retrieving the email status using RProperty::Get() - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// SetGlobalIndicator -// Sets the value for given global indicator. -// ----------------------------------------------------------------------------- -// -TInt CGlobalIndicators::SetGlobalIndicator(TInt aIndicator, TInt aValue) -{ - - LOG2(EJavaGlobalInd, EInfo, - "GlobalIndicators::SetGlobalIndicator indicator:%d, value:%d", - aIndicator, aValue); - - - // Make sure that indicator JNI constants match into P&S definitions used - // in platform. - TUint32 convertedIndicator = aIndicator; - if (aIndicator == KPropertyGlobalMailIndicator) - { - convertedIndicator = KCoreAppUIsNewEmailStatus; - } - if (aIndicator == KPropertyGlobalChatIndicator) - { - convertedIndicator = KCoreAppUIsUipInd; - } - - TInt readValue = KPropertyGlobalIndicatorUninitialized; - RProperty property; - - TInt ret = property.Attach(KPSUidCoreApplicationUIs, convertedIndicator); - if (KErrNone == ret) - { - ret = property.Get(readValue); - TInt setValue = KPropertyGlobalIndicatorUninitialized; - - // For Email and Chat indicators, use the specific known P&S values - if (convertedIndicator == KCoreAppUIsNewEmailStatus || - convertedIndicator == KCoreAppUIsUipInd) - { - if (aValue == KPropertyGlobalIndicatorShow) - { - // Always ok to turn on - just check if is was already on - if (readValue != ECoreAppUIsNewEmail && - readValue != ECoreAppUIsShow) - { - if (convertedIndicator == KCoreAppUIsNewEmailStatus) - { - setValue = ECoreAppUIsNewEmail; - } - if (convertedIndicator == KCoreAppUIsUipInd) - { - setValue = ECoreAppUIsShow; - } - - ret = property.Set(setValue); - readValue = KPropertyGlobalIndicatorShow; - LOG1(EJavaGlobalInd, EInfo, - "GlobalIndicators::SetGlobalIndicator ON, value:%D", - setValue); - } - } - else if (aValue == KPropertyGlobalIndicatorHide) - { - // When turning email inficator off bear in mind that there is - // no way to know for sure if some other application still would - // like to have the indicator turned on. - if (readValue != ECoreAppUIsNoNewEmail && - readValue != ECoreAppUIsDoNotShow) - { - if (convertedIndicator == KCoreAppUIsNewEmailStatus) - { - setValue = ECoreAppUIsNoNewEmail; - } - if (convertedIndicator == KCoreAppUIsUipInd) - { - setValue = ECoreAppUIsDoNotShow; - } - - ret = property.Set(setValue); - readValue = KPropertyGlobalIndicatorHide; - LOG1(EJavaGlobalInd, EInfo, - "GlobalIndicators::SetGlobalIndicator OFF, value:%D", - setValue); - } - } - else - { - // Value is not HIDE or SHOW. Try to set it anyway. - ret = property.Set(aValue); - readValue = aValue; - LOG1(EJavaGlobalInd, EInfo, - "GlobalIndicators::SetGlobalIndicator value:%D", - aValue); - } - } - - else // other than Email or Chat indicator - { - ret = property.Set(aValue); - readValue = aValue; - LOG1(EJavaGlobalInd, EInfo, - "GlobalIndicators::SetGlobalIndicator [user defined] value:%D", - aValue); - } - - } - property.Close(); - if (KErrNone != ret) - { - LOG1(EJavaGlobalInd, EInfo, - "GlobalIndicators::SetGlobalIndicator property error :%D", - ret); - readValue = ret; - } - - // return the property value or an error code - return readValue; -} - -// ----------------------------------------------------------------------------- -// GlobalIndicator -// Gets the value of given global indicator. -// ----------------------------------------------------------------------------- -// -TInt CGlobalIndicators::GlobalIndicator(TInt aIndicator) -{ - LOG(EJavaGlobalInd, EInfo, "GlobalIndicators::GlobalIndicator"); - RProperty property; - TInt readValue = 0; - TInt ret = KErrNotFound; - - if (aIndicator == KPropertyGlobalMailIndicator) - { - ret = property.Attach( - KPSUidCoreApplicationUIs, KCoreAppUIsNewEmailStatus); - } - else if (aIndicator == KPropertyGlobalChatIndicator) - { - ret = property.Attach( - KPSUidCoreApplicationUIs, KCoreAppUIsUipInd); - } - else - { - // A specific indicator (other than mail or chat indicator) - ret = property.Attach( - KPSUidCoreApplicationUIs, aIndicator); - } - - // If Attach has succeeded, try reading the Property value - if (KErrNone == ret) - { - ret = property.Get(readValue); - property.Close(); - } - - // If also reading has succeeded, return the Property value - if (KErrNone == ret) - { - return readValue ; - } - else - { - return ret; - } -} - -// End of File