diff options
author | Andrzej Zaborowski <andrew.zaborowski@intel.com> | 2010-11-23 14:34:46 +0100 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-11-25 17:44:22 -0600 |
commit | b403ffb755566f3faded487fea0852e3d2786ef7 (patch) | |
tree | 9bf89af6ac5e0e05d5f443ccd5b5665327340dea | |
parent | 140aee112b970603a0e986231aad091fb0b5a634 (diff) | |
download | phonesim-b403ffb755566f3faded487fea0852e3d2786ef7.tar.gz |
phonesim: Add SIM Refresh commands to sim app menu
-rw-r--r-- | src/simapplication.cpp | 104 | ||||
-rw-r--r-- | src/simapplication.h | 2 |
2 files changed, 106 insertions, 0 deletions
diff --git a/src/simapplication.cpp b/src/simapplication.cpp index a3aec43..f20c7f1 100644 --- a/src/simapplication.cpp +++ b/src/simapplication.cpp @@ -289,6 +289,7 @@ const QString DemoSimApplication::getName() #define MainMenu_SendSMS 14 #define MainMenu_Polling 15 #define MainMenu_Timers 16 +#define MainMenu_Refresh 17 #define SportsMenu_Chess 1 #define SportsMenu_Painting 2 @@ -438,6 +439,10 @@ void DemoSimApplication::mainMenu() item.setLabel( "Timers" ); items += item; + item.setIdentifier( MainMenu_Refresh ); + item.setLabel( "SIM Refresh" ); + items += item; + cmd.setMenuItems( items ); command( cmd, 0, 0 ); @@ -568,6 +573,12 @@ void DemoSimApplication::mainMenuSelection( int id ) } break; + case MainMenu_Refresh: + { + sendRefreshMenu(); + } + break; + default: { // Don't know what this item is, so just re-display the main menu. @@ -2215,3 +2226,96 @@ bool DemoSimApplication::envelope( const QSimEnvelope& env ) return true; } + +void DemoSimApplication::sendRefreshMenu() +{ + QSimCommand cmd; + QSimMenuItem item; + QList<QSimMenuItem> items; + + cmd.setType( QSimCommand::SelectItem ); + cmd.setTitle( "SIM Refresh menu" ); + + /* Use qualifier value + 1 for id */ + item.setIdentifier( 1 ); + item.setLabel( "NAA Initialization+Full File Change Notification" ); + items += item; + + item.setIdentifier( 2 ); + item.setLabel( "File Change Notification (EFmsisdn,EFecc,EFfdn)" ); + items += item; + + item.setIdentifier( 3 ); + item.setLabel( "NAA Initialization+File Change Notification" ); + items += item; + + item.setIdentifier( 4 ); + item.setLabel( "NAA Initialization" ); + items += item; + + item.setIdentifier( 5 ); + item.setLabel( "UICC Reset" ); + items += item; + + item.setIdentifier( 6 ); + item.setLabel( "NAA Application Reset" ); + items += item; + + item.setIdentifier( 7 ); + item.setLabel( "NAA Session Reset" ); + items += item; + + cmd.setMenuItems( items ); + + command( cmd, this, SLOT(refreshMenuResp(QSimTerminalResponse)) ); +} + +void DemoSimApplication::refreshMenuResp( const QSimTerminalResponse& resp ) +{ + QSimCommand cmd; + + if ( resp.result() != QSimTerminalResponse::Success ) { + /* Unknown response - just go back to the main menu. */ + endSession(); + + return; + } + + /* Item selected. */ + + cmd.setType( QSimCommand::Refresh ); + cmd.setQualifier( resp.menuItem() - 1 ); + cmd.setDestinationDevice( QSimCommand::ME ); + cmd.setText( "" ); + + if ( cmd.refreshType() == QSimCommand::FileChange || + cmd.refreshType() == QSimCommand::InitAndFileChange || + cmd.refreshType() == QSimCommand::NaaSessionReset ) { + QByteArray files; + files += (char) 0x03; + /* EFmsisdn */ + files += (char) 0x3f; + files += (char) 0x00; + files += (char) 0x7f; + files += (char) 0xff; + files += (char) 0x6f; + files += (char) 0x40; + /* EFecc */ + files += (char) 0x3f; + files += (char) 0x00; + files += (char) 0x7f; + files += (char) 0xff; + files += (char) 0x6f; + files += (char) 0xb7; + /* EFfdn */ + files += (char) 0x3f; + files += (char) 0x00; + files += (char) 0x7f; + files += (char) 0xff; + files += (char) 0x6f; + files += (char) 0x3b; + cmd.addExtensionField( 0x92, files ); + } + + command( cmd, this, SLOT(endSession()) ); +} diff --git a/src/simapplication.h b/src/simapplication.h index cae64f7..df36bbb 100644 --- a/src/simapplication.h +++ b/src/simapplication.h @@ -124,6 +124,8 @@ protected slots: void sendTimersMenu(); void timersMenuResp( const QSimTerminalResponse& resp ); void timersCmdResp( const QSimTerminalResponse& resp ); + void sendRefreshMenu(); + void refreshMenuResp( const QSimTerminalResponse& resp ); private: int sticksLeft; |