Simulate provide local info command in sim app
PATCH 1/1 Simulate provide local info command in sim app
--- src/simapplication.cpp | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ src/simapplication.h | 2 + 2 files changed, 70 insertions(+), 0 deletions(-)
src/simapplication.cpp +68 -0
@@ -288,6 +288,7 @@ const QString DemoSimApplication::getName() #define MainMenu_SendUSSD 13 #define MainMenu_SendSMS 14 #define MainMenu_Polling 15 +#define MainMenu_LocalInfo 16 #define SportsMenu_Chess 1 #define SportsMenu_Painting 2
@@ -346,6 +347,9 @@ const QString DemoSimApplication::getName() #define SendUSSD_Error 4 #define SendUSSD_Main 5 +#define LocalInfoMenu_Time 1 +#define LocalInfoMenu_Lang 2 + enum SendSMSMenuItems { SendSMS_Unpacked = 1, SendSMS_Packed,
@@ -426,6 +430,10 @@ void DemoSimApplication::mainMenu() item.setLabel( "SIM Polling" ); items += item; + item.setIdentifier( MainMenu_LocalInfo ); + item.setLabel( "Provide Local Information" ); + items += item; + cmd.setMenuItems( items ); command( cmd, 0, 0 );
@@ -550,6 +558,12 @@ void DemoSimApplication::mainMenuSelection( int id ) } break; + case MainMenu_LocalInfo: + { + sendLocalInfoMenu(); + } + break; + default: { // Don't know what this item is, so just re-display the main menu.
@@ -2044,3 +2058,57 @@ void DemoSimApplication::pollingMenuResp( const QSimTerminalResponse& resp ) break; } } + +void DemoSimApplication::sendLocalInfoMenu() +{ + QSimCommand cmd; + QSimMenuItem item; + QList<QSimMenuItem> items; + + cmd.setType( QSimCommand::SelectItem ); + cmd.setTitle( "Provide Local Information" ); + + item.setIdentifier( LocalInfoMenu_Time ); + item.setLabel( "Date, time and time zone" ); + items += item; + + item.setIdentifier( LocalInfoMenu_Lang ); + item.setLabel( "Language setting" ); + items += item; + + cmd.setMenuItems( items ); + + command( cmd, this, SLOT(localInfoMenu(QSimTerminalResponse)) ); +} + +void DemoSimApplication::localInfoMenu( const QSimTerminalResponse& resp ) +{ + QSimCommand cmd; + + if ( resp.result() == QSimTerminalResponse::Success ) { + switch ( resp.menuItem() ) { + + case LocalInfoMenu_Time: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x03 ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + case LocalInfoMenu_Lang: + { + cmd.setType( QSimCommand::ProvideLocalInformation ); + cmd.setQualifier( 0x04 ); + command( cmd, this, SLOT(sendLocalInfoMenu()) ); + } + break; + + default: + endSession(); + break; + } + } else { + endSession(); + } +}
src/simapplication.h +2 -0
@@ -119,6 +119,8 @@ protected slots: void smsSetTextResp( const QSimTerminalResponse& resp );void sendPollingMenu (); void pollingMenuResp( const QSimTerminalResponse& resp ); +void sendLocalInfoMenu (); + void localInfoMenu ( const QSimTerminalResponse& resp ); private:int sticksLeft;
Signature · 1 line
1.7.2.3
Hi Yang,
Quoted 5 lines · Yang Gu
--- src/simapplication.cpp | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ src/simapplication.h | 2 + 2 files changed, 70 insertions(+), 0 deletions(-)
Patch looks good, but could you please rebase and resubmit?
Thanks,
-Denis