aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrzej Zaborowski <andrew.zaborowski@intel.com>2010-11-21 16:51:36 +0100
committerDenis Kenzior <denkenz@gmail.com>2010-11-22 09:04:33 -0600
commit25531b9edf50ac845ac7a7580d98852b76614031 (patch)
tree196bca5294b40560d752b7a167de8a179da672f3
parent84ef9584a1060af99195e07336b40ca2dcfd10e8 (diff)
downloadphonesim-25531b9edf50ac845ac7a7580d98852b76614031.tar.gz
phonesim: Add SIM Polling commands to sim app menu.
-rw-r--r--src/simapplication.cpp66
-rw-r--r--src/simapplication.h2
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;