Forums | developer.brewmp.com Forums | developer.brewmp.com

Developer

Forums

Forums:

Hello,

if I register for NMASK_SHELL_START_STATUS notification, when would it arrive for AEECLSID_SHELL with BREW 3.1.x?

According to API reference, the notification is supposed to be delivered when the application attempts to become top-visible. What does it mean "top-visible" for shell? When the device powers on? When any other BREW app exits and idle screen comes to the foreground? When the device goes to sleep mode?

If there is a set rule for exactly when this notification is to be delivered, is such delivery controlled completely by BREW and guaranteed to be consistent regardless of manufacturer / model, or the behavior can vary based on how a given handset manufacturer implemented the OEM layer?

Thank you for your help!

Brew app becomes "Top-visible" if it gets access to primary display. Only one app can be top-visible at a time. Lets say app A is top-visible and another app starts and gets access to display then A goes in suspended state and B becomes top-visible.
NMASK_SHELL_START_STATUS can be used to receive notification whenever an app tries to become top visible. Notification is sent to the registered app when any applet gains access to the primary display (i.e. become top-visible). API reference describes some scenarios.

Brew app becomes "Top-visible" if it gets access to primary display. Only one app can be top-visible at a time. Lets say app A is top-visible and another app starts and gets access to display then A goes in suspended state and B becomes top-visible.
NMASK_SHELL_START_STATUS can be used to receive notification whenever an app tries to become top visible. Notification is sent to the registered app when any applet gains access to the primary display (i.e. become top-visible). API reference describes some scenarios.

Atul,
thank you for your reply! I understand what top-visible means for the regular BREW applications. My question was specific to AEECLSID_SHELL and top-visible. I believe AEECLSID_SHELL is BREW shell / engine? What does top-visible mean for this particular class ID? Is it the device native home idle screen? BREW app manager? Some kind of intermediate status between BREW applets? When a device powers on?
Thank you for your help!

Atul,
thank you for your reply! I understand what top-visible means for the regular BREW applications. My question was specific to AEECLSID_SHELL and top-visible. I believe AEECLSID_SHELL is BREW shell / engine? What does top-visible mean for this particular class ID? Is it the device native home idle screen? BREW app manager? Some kind of intermediate status between BREW applets? When a device powers on?
Thank you for your help!

I think you are taking it incorrectly...AEECLSID_SHELL is a Brew system class which handles all the shell services (as any other OS). It is notifier class for notifications such as app start, keys, Brew initialization etc which notifies the regular Brew apps regarding these notifications.
Brew app registers for shell notifications like app start (with mask NMASK_SHELL_START_STATUS) to shell (AEECLSID_SHELL) and when app starts shell sends the notification to Brew app.
So, don't take AEECLSID_SHELL as any app on device. And NMASK_SHELL_START_STATUS is for regular Brew app starts.
hope its clear...

I think you are taking it incorrectly...AEECLSID_SHELL is a Brew system class which handles all the shell services (as any other OS). It is notifier class for notifications such as app start, keys, Brew initialization etc which notifies the regular Brew apps regarding these notifications.
Brew app registers for shell notifications like app start (with mask NMASK_SHELL_START_STATUS) to shell (AEECLSID_SHELL) and when app starts shell sends the notification to Brew app.
So, don't take AEECLSID_SHELL as any app on device. And NMASK_SHELL_START_STATUS is for regular Brew app starts.
hope its clear...

Atul,
thank you sooo much for your quick response and help! Just to double-confirm...
When I receive NMASK_SHELL_START_STATUS notification, I also receive NotifyStartStatus as the data. The first member in it is "AEECLSID cls". You meant to say I shouldn't be receiving AEECLSID_SHELL for this 'cls'?
That is, if I had the following block in the event handler function,
[="Courier New"]...
case EVT_NOTIFY:
AEENotify * pNotify = (AEENotify *) (dwParam);
...
[/]
Then,

pNotify->cls is AEECLSID_SHELL
pNotify->dwMask has NMASK_SHELL_START_STATUS bit on
pNotify->pData->cls can NEVER be AEECLSID_SHELL

Did I get it right?
Thank you again for all your help!!

Atul,
thank you sooo much for your quick response and help! Just to double-confirm...
When I receive NMASK_SHELL_START_STATUS notification, I also receive NotifyStartStatus as the data. The first member in it is "AEECLSID cls". You meant to say I shouldn't be receiving AEECLSID_SHELL for this 'cls'?
That is, if I had the following block in the event handler function,
[="Courier New"]...
case EVT_NOTIFY:
AEENotify * pNotify = (AEENotify *) (dwParam);
...
[/]
Then,

pNotify->cls is AEECLSID_SHELL
pNotify->dwMask has NMASK_SHELL_START_STATUS bit on
pNotify->pData->cls can NEVER be AEECLSID_SHELL

Did I get it right?
Thank you again for all your help!!

Correct! cls id you receive through NotifyStartStatus will be class id of the regular Brew app which got access t primary display.

Correct! cls id you receive through NotifyStartStatus will be class id of the regular Brew app which got access t primary display.