diff options
author | Andrzej Zaborowski <andrew.zaborowski@intel.com> | 2010-11-21 16:51:36 +0100 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-11-22 09:04:33 -0600 |
commit | 25531b9edf50ac845ac7a7580d98852b76614031 (patch) | |
tree | 196bca5294b40560d752b7a167de8a179da672f3 | |
parent | 84ef9584a1060af99195e07336b40ca2dcfd10e8 (diff) | |
download | phonesim-25531b9edf50ac845ac7a7580d98852b76614031.tar.gz |
phonesim: Add SIM Polling commands to sim app menu.
-rw-r--r-- | src/simapplication.cpp | 66 | ||||
-rw-r--r-- | src/simapplication.h | 2 |
2 files changed, 68 insertions, 0 deletions
diff --git a/src/simapplication.cpp b/src/simapplication.cpp index 56471d1..05ae21f 100644 --- a/src/simapplication.cpp +++ b/src/simapplication.cpp @@ -287,6 +287,7 @@ const QString DemoSimApplication::getName() #define MainMenu_Language 12 #define MainMenu_SendUSSD 13 #define MainMenu_SendSMS 14 +#define MainMenu_Polling 15 #define SportsMenu_Chess 1 #define SportsMenu_Painting 2 @@ -352,6 +353,11 @@ enum SendSMSMenuItems { SendSMS_SetContents, }; +enum PollingMenuItems { + Polling_Off = 1, + Polling_30s, +}; + void DemoSimApplication::mainMenu() { QSimCommand cmd; @@ -416,6 +422,10 @@ void DemoSimApplication::mainMenu() item.setLabel( "Send SMS request" ); items += item; + item.setIdentifier( MainMenu_Polling ); + item.setLabel( "SIM Polling" ); + items += item; + cmd.setMenuItems( items ); command( cmd, 0, 0 ); @@ -534,6 +544,12 @@ void DemoSimApplication::mainMenuSelection( int id ) } break; + case MainMenu_Polling: + { + sendPollingMenu(); + } + break; + default: { // Don't know what this item is, so just re-display the main menu. @@ -1978,3 +1994,53 @@ void DemoSimApplication::smsSetTextResp( const QSimTerminalResponse& resp ) smsText = resp.text(); sendSMSMenu(); } + +void DemoSimApplication::sendPollingMenu() +{ + QSimCommand cmd; + QSimMenuItem item; + QList<QSimMenuItem> items; + + cmd.setType( QSimCommand::SelectItem ); + cmd.setTitle( "Polling Menu" ); + + item.setIdentifier( Polling_Off ); + item.setLabel( "Polling Off" ); + items += item; + + item.setIdentifier( Polling_30s ); + item.setLabel( "Poll Interval of 30s" ); + items += item; + + cmd.setMenuItems( items ); + + command( cmd, this, SLOT(pollingMenuResp(QSimTerminalResponse)) ); +} + +void DemoSimApplication::pollingMenuResp( const QSimTerminalResponse& resp ) +{ + QSimCommand cmd; + + if ( resp.result() != QSimTerminalResponse::Success ) { + /* Unknown response - just go back to the main menu. */ + endSession(); + + return; + } + + /* Item selected. */ + switch ( resp.menuItem() ) { + case Polling_Off: + cmd.setType( QSimCommand::PollingOff ); + cmd.setDestinationDevice( QSimCommand::ME ); + command( cmd, this, SLOT(endSession()) ); + break; + + case Polling_30s: + cmd.setType( QSimCommand::PollInterval ); + cmd.setDuration( 30000 ); + cmd.setDestinationDevice( QSimCommand::ME ); + command( cmd, this, SLOT(endSession()) ); + break; + } +} diff --git a/src/simapplication.h b/src/simapplication.h index 90551af..4a2430f 100644 --- a/src/simapplication.h +++ b/src/simapplication.h @@ -117,6 +117,8 @@ protected slots: void smsMenuResp( const QSimTerminalResponse& resp ); void smsSetDestResp( const QSimTerminalResponse& resp ); void smsSetTextResp( const QSimTerminalResponse& resp ); + void sendPollingMenu(); + void pollingMenuResp( const QSimTerminalResponse& resp ); private: int sticksLeft; |