diff options
author | Denis Kenzior <denkenz@gmail.com> | 2013-01-02 05:22:07 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2013-01-02 05:23:36 -0600 |
commit | da70bb7ebcc4723913972d1dbf6ade6b03904e21 (patch) | |
tree | 16946ef738ba8849c0a15cbaec3759c71ede4262 | |
parent | 281b9806e94c7f7d17b32da8c8e97cd8aa7bddb8 (diff) | |
download | phonesim-da70bb7ebcc4723913972d1dbf6ade6b03904e21.tar.gz |
simapplication: Fake SIM re-init notifications
For SIM Refresh cases we need to simulate the SIM being removed and
re-inserted. Do that using the USIMSTATE: 1 unsolicited notification.
-rw-r--r-- | src/simapplication.cpp | 11 | ||||
-rw-r--r-- | src/simapplication.h | 1 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/simapplication.cpp b/src/simapplication.cpp index 03b8192..c491674 100644 --- a/src/simapplication.cpp +++ b/src/simapplication.cpp @@ -281,6 +281,11 @@ void SimApplication::endSession() d->rules->respond( "+CUSATEND", 1); } +void SimApplication::reinitSim() +{ + d->rules->unsolicited( "+USIMSTATE: 1" ); +} + DemoSimApplication::DemoSimApplication( SimRules *rules, QObject *parent ) : SimApplication( rules, parent ), smsDestNumber( "12345" ), smsText( "Hello" ) @@ -2359,6 +2364,9 @@ void DemoSimApplication::refreshMenuResp( const QSimTerminalResponse& resp ) } command( cmd, this, SLOT(endSession()) ); + + if (cmd.refreshType() != QSimCommand::FileChange) + QTimer::singleShot( 1000, this, SLOT(reinitSim()) ); } void DemoSimApplication::sendLocalInfoMenu() @@ -2701,7 +2709,8 @@ void DemoSimApplication::handledMenuResp( const QSimTerminalResponse& resp ) cmd.setDestinationDevice( QSimCommand::ME ); cmd.setText( "" ); - modemHandledCommand(cmd, 6000); + modemHandledCommand(cmd, 1000); + QTimer::singleShot( 1100, this, SLOT(reinitSim()) ); break; } diff --git a/src/simapplication.h b/src/simapplication.h index f5b54b5..d80d0e6 100644 --- a/src/simapplication.h +++ b/src/simapplication.h @@ -57,6 +57,7 @@ protected slots: virtual void mainMenuSelection( int id ); virtual void mainMenuHelpRequest( int id ); virtual void endSession(); + virtual void reinitSim(); private: SimApplicationPrivate *d; |