/*
* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: The observer interface for the Sat Client. Register a
* concrete impl of this to receive SAT events from the session
* object.
*
*/
#ifndef MSATUIOBSERVER_H
#define MSATUIOBSERVER_H
#include <e32base.h>
#include <e32svr.h>
#include <badesca.h> // for descriptor arrays
#include <etelsat.h>
/**
* The UI response codes, enumerations values are from ETSI 11.14 specification.
*/
enum TSatUiResponse
{
ESatFailure = -1, // OOM or other error
ESatSuccess = 0x00, // success
ESatSuccessToneNotPlayed = 0x09, // Warning and game tones are
// disabled from current profile
ESatSessionTerminatedByUser = 0x10, // user exited the app
ESatBackwardModeRequestedByUser = 0x11, // user pressed back
ESatNoResponseFromUser = 0x12, // no response from user
EHelpRequestedByUser = 0x13, // help request from the UI
EPCmdNotAcceptedByUser = 0x22,
ESatCmdDataNotUnderstood = 0x32
};
/**
* Tone values are dictated by ETSI 11.14.
* Use by the SAT Play Tone command.
*/
enum TSatTone
{
ESatToneNotSet = -1,
ESatDialTone = 0x01,
ESatCalledSubscriberBusy = 0x02,
ESatCongestion = 0x03,
ESatRadioPathAcknowledge = 0x04,
ESatRadioPathNotAvailableCallDropped = 0x05,
ESatErrorSpecialInfo = 0x06,
ESatCallWaitingTone = 0x07,
ESatRingingTone = 0x08,
ESatGeneralBeep = 0x10,
ESatPositiveTone = 0x11,
ESatNegativeTone = 0x12,
ESatUserSelectedToneIncomingSpeech = 0x13,
ESatUserSelectedToneIncomingSms = 0x14
};
enum TSatAlphaIdStatus
{
ESatAlphaIdNotNull,
ESatAlphaIdNull,
ESatAlphaIdNotProvided
};
/**
* ControlResult can be used e.g. to supply
* Call Control / MO Short Message Control result
* from SIM to UI Client
*/
enum TSatControlResult
{
ESatAllowedNoModification,
ESatNotAllowed,
ESatAllowedWithModifications
};
/**
* The SAT next action indicators, localized by the UI.
* Values commented out will not be used, with accordance to ETSI 11.14.
*/
enum TSatAction
{
//ESatNoAction = 0x00,
//ESatRefreshAction = 0x01,
//ESatMoreTimeAction = 0x02,
//ESatPollIntervalAction = 0x03,
//ESatPollingOffAction = 0x04,
//ESatSetUpEventListAction = 0x05,
ESatSetUpCallAction = 0x10,
ESatSendSsAction = 0x11,
ESatSendUssdAction = 0x12,
ESatSendSmAction = 0x13,
//ESatSendDtmfAction = 0x14,
ESatLaunchBrowserAction = 0x15,
ESatPlayToneAction = 0x20,
ESatDisplayTextAction = 0x21,
ESatGetInkeyAction = 0x22,
ESatGetInputAction = 0x23,
ESatSelectItemAction = 0x24,
ESatSetUpMenuAction = 0x25,
//ESatProvideLocalInformationAction = 0x26,
//ESatTimerManagementAction = 0x27,
ESatSetUpIdleModeTextAction = 0x28,
ESatPerformCardApduAction = 0x30,
ESatPowerOnCardAction = 0x31,
ESatPowerOffCardAction = 0x32,
ESatGetReaderStatusAction = 0x33,
//ESatRunAtCommandAction = 0x34,
ESatEndOfSimSession = 0x81
};
/**
* The SAT input commands' data formats.
*/
enum TSatCharacterSet
{
ESatDigitOnly,
ESatCharSmsDefaultAlphabet,
ESatCharUcs2Alphabet,
ESatYesNo
};
/**
* Dictates how the icons should be used.
*/
enum TSatIconQualifier
{
ESatIconQualifierNotSet,// Icon qualifier is not set
ESatENoIconId, // Icon qualifier not present
ESatSelfExplanatory, // Icon qualifier is self explanatory
// (to display instead of the alpha id or text
// string)
ESatNotSelfExplanatory // Icon qualifier is not self explanatory
// (to display along the alpha id or text string)
};
/**
* Identifies the quering command
*/
enum TSatSQueryCommand
{
ESatSSendSmQuery,
ESatSSendSsQuery,
ESatSSendUssdQuery,
ESatSRefreshQuery,
ESatSLaunchBrowserQuery,
ESatOpenChannelQuery,
ESatSSetUpCallQuery
};
/**
* Identifies the notification command
*/
enum TSatSNotifyCommand
{
ESatSSendDataNotify,
ESatSReceiveDataNotify,
ESatSCloseChannelNotify,
ESatSMoSmControlNotify,
ESatSCallControlNotify,
ESatSSendSsNotify,
ESatSSendUssdNotify,
ESatSSendDtmfNotify,
ESatSSendSmsNotify
};
/**
* The icon id struct.
*/
struct TSatIconId
{
TUint8 iIdentifier; // Identifies the EF_IMG in SIM.
TSatIconQualifier iIconQualifier;
};
/**
* Specifies whether soft keys is the preferred selection mode or not.
*/
enum TSatSelectionPreference
{
ESatSelectionPreferenceNotSet,
ESatNoSelectionPreference,
ESatSoftKeyPreferred
};
enum TSatBIPCommandIdentifier
{
ESendDataIdentier,
EReceiveDataIdentifier,
ECloseChannelIdentifier
};
enum TSatSessionTerminationType
{
ESessionCancel,
EEndKeyUsed
};
// Codes for event notifications.
enum TSatSEvent
{
ESatSRefreshStartEvent,
ESatSRefreshEndEvent,
ESatSSmEndEvent,
ESatSClearScreenEvent,
ESatSCloseSatUiAppEvent,
ESatSsEndEvent,
ESatSsErrorEvent,
ESatSDtmfEndEvent
};
enum TSatSEventStatus
{
ESatEventNone,
ESatEventCompleteOk,
ESatEventFailure,
ESatEventCancel
};
/**
* An abstract observer interface.
* Register to receive SAT events from the session object.
*
* @lib SatClient.lib
* @since Series 60 2.0
*/
class MSatUiObserver
{
public: // New functions
/**
* Notification of the SAT Display Text command.
* @param aText The text string to be displayed.
* @param aSimApplicationName Sim Application name
* @param aIconId The id of icon.
* @param aRequestedIconDisplayed Informs if icon is not used.
* @param aSustainedText Indicates is this text sustained ie. no timers
* used if ETrue.
* @param aDuration Duration for showing the text
* @param aWaitUserToClear Indication if user is needed to clear
* message
* @return The response of the UI to this command.
*/
virtual TSatUiResponse DisplayTextL(
const TDesC& aText,
const TDesC& aSimApplicationName,
const TSatIconId& aIconId,
TBool& aRequestedIconDisplayed,
const TBool aSustainedText,
const TTimeIntervalSeconds aDuration,
const TBool aWaitUserToClear ) = 0;
/**
* Notification of the SAT Get Inkey command.
* @param aText The query text.
* @param aCharacterSet The character range allowed.
* @param aInput The input character.
* @param aHelpIsAvailable indicates if help can be requested.
* @param aIconId The id of icon.
* @param aRequestedIconDisplayed Informs if icon is not used.
* @param aDuration Duration for showing the dialog.
* @param aImmediateDigitResponse Indication if Immediate digit response
* is needed.
* @return The response of the UI to this command.
*/
virtual TSatUiResponse GetInkeyL(
const TDesC& aText,
const TSatCharacterSet aCharacterSet,
TChar& aInput,
const TBool aHelpIsAvailable,
const TSatIconId& aIconId,
TBool& aRequestedIconDisplayed,
TUint& aDuration,
const TBool aImmediateDigitResponse ) = 0;
/**
* Notification of the SAT Get Input command.
* @param aText The query text.
* @param aCharacterSet The character range allowed.
* @param aInput The input string.
* @param aMaxLength The maximum length of the input allowed.
* @param aMinLength The minimum length of the input allowed.
* @param aHideInput A flag indicating if the input should be hidden.
* @param aHelpIsAvailable indicates if help can be requested.
* @param aIconId The id of icon.
* @param aRequestedIconDisplayed Informs if icon is not used.
* @return The response of the UI to this command.
*/
virtual TSatUiResponse GetInputL(
const TDesC& aText,
const TSatCharacterSet aCharacterSet,
TDes& aInput,
const TInt aMinLength,
const TInt aMaxLength,
const TBool aHideInput,
const TBool aHelpIsAvailable,
const TSatIconId& aIconId,
TBool& aRequestedIconDisplayed ) = 0;
/**
* Notification of the SAT Set Up Menu command.
* @param aText The query text.
* @param aMenuItems The array of menu item captions.
* @param aMenuItemNextActions The array of menu item next action
* indicator captions.
* @param aHelpIsAvailable indicates if help can be requested.
* @param aIconId The id of icon.
* @param aMenuIcons List of icon identifiers for menu items.
* @param aIconListQualifier Indicates how to use icons in the icon
* list.
* @param aSelectionPreference Specifies is the soft keys preferred.
* @return The response of the UI to this command.
*/
virtual TSatUiResponse SetUpMenuL(
const TDesC& aText,
const MDesCArray& aMenuItems,
const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
const TBool aHelpIsAvailable,
const TSatIconId& aIconId,
const CArrayFixFlat<TInt>* aMenuIcons,
const enum TSatIconQualifier aIconListQualifier,
const enum TSatSelectionPreference aSelectionPreference ) = 0;
/**
* Notification of the SAT Select Item command.
* @param aText The query text.
* @param aMenuItems The array of menu item captions.
* @param aMenuItemNextActions The array of menu item next action
* indicator codes.
* @param aDefaultItem The item selected by default.
* @param aSelection The item index selected by the user.
* @param aHelpIsAvailable indicates if help can be requested.
* @param aIconId The id of title icon.
* @param aMenuIcons List of icon identifiers for menu items.
* @param aIconListQualifier Indicates how to use icons in the icon
* list.
* @param aRequestedIconDisplayed Informs if icon is not used.
* @param aSelectionPreference Specifies is the soft keys preferred.
* @return The response of the UI to this command.
*/
virtual TSatUiResponse SelectItemL(
const TDesC& aText,
const MDesCArray& aMenuItems,
const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
const TInt aDefaultItem, TUint8& aSelection,
const TBool aHelpIsAvailable,
const TSatIconId& aIconId,
const CArrayFixFlat<TInt>* aMenuIcons,
const enum TSatIconQualifier aIconListQualifier,
TBool& aRequestedIconDisplayed,
const enum TSatSelectionPreference aSelectionPreference ) = 0;
/**
* Notification of the SAT Play Tone command.
* @param aText The text to be displayed.
* @param aTone The tone to be played.
* @param aDuration The duration of the tone to be played.
* @param aIconId The id of icon.
* @param aRequestedIconDisplayed Informs if icon is not used.
* @return The response of the UI to this command.
*/
virtual TSatUiResponse PlayTone(
const TDesC& aText,
const TSatTone aTone,
const TTimeIntervalMicroSeconds aDuration,
const TSatIconId& aIconId,
TBool& aRequestedIconDisplayed ) = 0;
/**
* General confirmation request
* @param aCommandId ID of the quering command
* @param aAlphaIdStatus Alpha Identifier status
* @param aText The text to be displayed.
* @param aAdditionalText Additional text to be used in queries.
* @param aActionAccepted Indicates whether the command was accepted.
* @param aIconId The id of icon.
* @param aRequestedIconDisplayed Informs if icon is not used.
* @param aTerminatedByUser Informs if end key is used.
*/
virtual void ConfirmCommand(
const TSatSQueryCommand aCommandId,
const TSatAlphaIdStatus aAlphaIdStatus,
const TDesC& aText,
const TDesC& aAdditionalText,
TBool& aActionAccepted,
const TSatIconId& aIconId,
TBool& aRequestedIconDisplayed,
TBool& aTerminatedByUser ) = 0;
/**
* General notification
* @param aCommandId ID of the notifying command
* @param aAlphaIdStatus Alpha Identifier status
* @param aText Alpha Identifier
* @param aIconId The id of icon.
* @param aRequestedIconDisplayed Informs if icon is not used.
* @param aControlResult Control result of the MoSm and CallControl
* @return The response of the UI to this command.
*/
virtual TSatUiResponse Notification(
const TSatSNotifyCommand aCommandId,
const TSatAlphaIdStatus aAlphaIdStatus,
const TDesC& aText,
const TSatIconId& aIconId,
TBool& aRequestedIconDisplayed,
const TSatControlResult aControlResult ) = 0;
/**
* General event notification. Used for example to tell UI that command
* has completed its execution.
* @param aEventId, identifies the event
* @param aEventStatus, status of the event, used as additional info for
* the event
* @param aError, possible error code that may affect on event handling.
* This is also used as additional info
*/
virtual void EventNotification(
const TSatSEvent aEventId,
const TSatSEventStatus aEventStatus,
const TInt aError ) = 0;
};
#endif // MSATUIOBSERVER_H