aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrzej Zaborowski <andrew.zaborowski@intel.com>2010-11-23 14:34:46 +0100
committerDenis Kenzior <denkenz@gmail.com>2010-11-25 17:44:22 -0600
commitb403ffb755566f3faded487fea0852e3d2786ef7 (patch)
tree9bf89af6ac5e0e05d5f443ccd5b5665327340dea
parent140aee112b970603a0e986231aad091fb0b5a634 (diff)
downloadphonesim-b403ffb755566f3faded487fea0852e3d2786ef7.tar.gz
phonesim: Add SIM Refresh commands to sim app menu
-rw-r--r--src/simapplication.cpp104
-rw-r--r--src/simapplication.h2
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;