38 // ---------------------------------------------------------------------------- |
38 // ---------------------------------------------------------------------------- |
39 // CAiStateProvider::NewL() |
39 // CAiStateProvider::NewL() |
40 // Two-phased constructor. |
40 // Two-phased constructor. |
41 // ---------------------------------------------------------------------------- |
41 // ---------------------------------------------------------------------------- |
42 // |
42 // |
43 CAiStateProvider* CAiStateProvider::NewL( |
43 CAiStateProvider* CAiStateProvider::NewL( MAiStateObserver& aObserver ) |
44 MAiStateObserver& aObserver, CCoeEnv& aCoeEnv ) |
|
45 { |
44 { |
46 CAiStateProvider* self = |
45 CAiStateProvider* self = |
47 CAiStateProvider::NewLC( aObserver, aCoeEnv ); |
46 CAiStateProvider::NewLC( aObserver ); |
48 |
47 |
49 CleanupStack::Pop( self ); |
48 CleanupStack::Pop( self ); |
50 |
49 |
51 return self; |
50 return self; |
52 } |
51 } |
54 // ---------------------------------------------------------------------------- |
53 // ---------------------------------------------------------------------------- |
55 // CAiStateProvider::NewLC() |
54 // CAiStateProvider::NewLC() |
56 // Two-phased constructor. |
55 // Two-phased constructor. |
57 // ---------------------------------------------------------------------------- |
56 // ---------------------------------------------------------------------------- |
58 // |
57 // |
59 CAiStateProvider* CAiStateProvider::NewLC( |
58 CAiStateProvider* CAiStateProvider::NewLC( MAiStateObserver& aObserver ) |
60 MAiStateObserver& aObserver, CCoeEnv& aCoeEnv ) |
|
61 { |
59 { |
62 CAiStateProvider* self = |
60 CAiStateProvider* self = |
63 new ( ELeave ) CAiStateProvider( aObserver, aCoeEnv ); |
61 new ( ELeave ) CAiStateProvider( aObserver ); |
64 |
62 |
65 CleanupStack::PushL( self ); |
63 CleanupStack::PushL( self ); |
66 self->ConstructL(); |
64 self->ConstructL(); |
67 |
65 |
68 return self; |
66 return self; |
72 // CAiStateProvider::~CAiStateProvider() |
70 // CAiStateProvider::~CAiStateProvider() |
73 // C++ default destructor. |
71 // C++ default destructor. |
74 // ---------------------------------------------------------------------------- |
72 // ---------------------------------------------------------------------------- |
75 // |
73 // |
76 CAiStateProvider::~CAiStateProvider() |
74 CAiStateProvider::~CAiStateProvider() |
77 { |
75 { |
78 iObserver.NotifyStateChange( EAiFwUiShutdown ); |
76 Stop(); |
79 |
|
80 iCoeEnv.RemoveMessageMonitorObserver( *this ); |
|
81 |
|
82 delete iEcomObserver; |
|
83 |
|
84 iSkinSrv.Close(); |
|
85 |
|
86 Release( iBackupRestoreObserver ); |
|
87 |
|
88 delete iLightObserver; |
|
89 } |
77 } |
90 |
78 |
91 // ---------------------------------------------------------------------------- |
79 // ---------------------------------------------------------------------------- |
92 // CAiStateProvider::CAiStateProvider() |
80 // CAiStateProvider::CAiStateProvider() |
93 // C++ default constructor. |
81 // C++ default constructor. |
94 // ---------------------------------------------------------------------------- |
82 // ---------------------------------------------------------------------------- |
95 // |
83 // |
96 CAiStateProvider::CAiStateProvider( MAiStateObserver& aObserver, |
84 CAiStateProvider::CAiStateProvider( MAiStateObserver& aObserver ) |
97 CCoeEnv& aCoeEnv ) |
85 : iObserver( aObserver ) |
98 : iObserver( aObserver ), iCoeEnv( aCoeEnv ) |
86 { |
99 { |
|
100 iObserver.NotifyStateChange( EAiFwUiStartup ); |
|
101 } |
87 } |
102 |
88 |
103 // ---------------------------------------------------------------------------- |
89 // ---------------------------------------------------------------------------- |
104 // CAiStateProvider::ConstructL() |
90 // CAiStateProvider::ConstructL() |
105 // 2nd phase constructor |
91 // 2nd phase constructor |
106 // ---------------------------------------------------------------------------- |
92 // ---------------------------------------------------------------------------- |
107 // |
93 // |
108 void CAiStateProvider::ConstructL() |
94 void CAiStateProvider::ConstructL() |
109 { |
95 { |
110 iLightObserver = CHWRMLight::NewL( this ); |
96 } |
111 |
97 |
112 iBackupRestoreObserver = AiUtility::CreatePSPropertyObserverL( |
98 // ---------------------------------------------------------------------------- |
113 TCallBack( BackupRestoreEvent, this ), |
99 // CAiStateProvider::StartL() |
114 KUidSystemCategory, conn::KUidBackupRestoreKey ); |
100 // |
115 |
101 // ---------------------------------------------------------------------------- |
116 User::LeaveIfError( iSkinSrv.Connect( this ) ); |
102 // |
117 |
103 void CAiStateProvider::StartL( CCoeEnv& aCoeEnv ) |
118 iEcomObserver = CAiEcomObserver::NewL(); |
104 { |
119 iEcomObserver->AddObserverL( this ); |
105 if ( !iStarted ) |
120 |
106 { |
121 iCoeEnv.AddMessageMonitorObserverL( *this ); |
107 iStarted = ETrue; |
|
108 |
|
109 iObserver.NotifyStateChange( EAiFwUiStartup ); |
|
110 |
|
111 iLightObserver = CHWRMLight::NewL( this ); |
|
112 |
|
113 iBackupRestoreObserver = AiUtility::CreatePSPropertyObserverL( |
|
114 TCallBack( BackupRestoreEvent, this ), |
|
115 KUidSystemCategory, conn::KUidBackupRestoreKey ); |
|
116 |
|
117 User::LeaveIfError( iSkinSrv.Connect( this ) ); |
|
118 |
|
119 iEcomObserver = CAiEcomObserver::NewL(); |
|
120 iEcomObserver->AddObserverL( this ); |
|
121 |
|
122 iCoeEnv = &aCoeEnv; |
|
123 |
|
124 iCoeEnv->AddMessageMonitorObserverL( *this ); |
|
125 } |
|
126 } |
|
127 |
|
128 // ---------------------------------------------------------------------------- |
|
129 // CAiStateProvider::Stop() |
|
130 // |
|
131 // ---------------------------------------------------------------------------- |
|
132 // |
|
133 void CAiStateProvider::Stop() |
|
134 { |
|
135 if ( iStarted ) |
|
136 { |
|
137 iStarted = EFalse; |
|
138 |
|
139 iObserver.NotifyStateChange( EAiFwUiShutdown ); |
|
140 |
|
141 if ( iCoeEnv ) |
|
142 { |
|
143 iCoeEnv->RemoveMessageMonitorObserver( *this ); |
|
144 } |
|
145 |
|
146 iCoeEnv = NULL; |
|
147 |
|
148 delete iEcomObserver; |
|
149 iEcomObserver = NULL; |
|
150 |
|
151 iSkinSrv.Close(); |
|
152 |
|
153 Release( iBackupRestoreObserver ); |
|
154 iBackupRestoreObserver = NULL; |
|
155 |
|
156 delete iLightObserver; |
|
157 iLightObserver = NULL; |
|
158 } |
122 } |
159 } |
123 |
160 |
124 // ---------------------------------------------------------------------------- |
161 // ---------------------------------------------------------------------------- |
125 // CAiStateProvider::MonitorWsMessage() |
162 // CAiStateProvider::MonitorWsMessage() |
126 // |
163 // |