Growl[1.2] installation pops up when helper app is stopped.

The Growl forums have moved to Google Groups, this forum is read only.
Locked
Kiranb0007
Harmless
Posts: 3
Joined: Thu Oct 15, 2009 1:16 pm

Growl[1.2] installation pops up when helper app is stopped.

Post by Kiranb0007 »

Hi,

I am planning to integrate Growl with installer framework in my application. I am using version 1.2 as my application is 64-bit with 10.6 support.
In the text below "Growl running" would mean that the GrowlHelperApp.app is running unless which the alert is not displayed to the User. Running/stopping can be due to User stopping the Growl in preference pane or killed via Activity monitor. The observations below are by stopping in Preference pane.

Here are the 3 scenarios I am testing :
1. Growl is not installed.
When my application posts an event, Growl offers an installation dialog. If User agrees, it allows the User to install for current/all User. However, this option is not available when the Growl distributed directly is installed. It always installs for all User.
So should I be worried about this deviation? What if two different versions of Growl in installed in two different locations? i.e. in ~/Library/PreferencePanes and /Library/PreferencePanes/

2. Latest Growl is installed and growl is not running.
In this scenario, the framework provides an installation option even thought the required version is installed. Is this not a bug?
Is there any way I can start Growl if it is not running to prevent this behavior?
I feel that User would never opt to install again as he is aware that he has the latest version.

3. Growl already installed and running.
This works. No issues.

Thanks in advance,
Kiran
User avatar
boredzo
Cocoaforge Admin
Posts: 796
Joined: Mon Dec 06, 2004 7:49 am
Contact:

Re: Growl[1.2] installation pops up when helper app is stopped.

Post by boredzo »

Kiranb0007 wrote:Latest Growl is installed and growl is not running.
In this scenario, the framework provides an installation option even thought the required version is installed. Is this not a bug?
What version of Growl do you have installed, as reported in the About tab in the prefpane in System Preferences (above the Credits view)?

What is the full POSIX path to that prefpane?
Kiranb0007
Harmless
Posts: 3
Joined: Thu Oct 15, 2009 1:16 pm

Re: Growl[1.2] installation pops up when helper app is stopped.

Post by Kiranb0007 »

boredzo wrote:
Kiranb0007 wrote:Latest Growl is installed and growl is not running.
In this scenario, the framework provides an installation option even thought the required version is installed. Is this not a bug?
What version of Growl do you have installed, as reported in the About tab in the prefpane in System Preferences (above the Credits view)?

What is the full POSIX path to that prefpane?
Growl version is 1.2 in about tab. I have also checked the Info.plist of the Prefpane and helper app. It is 1.2. Also in the +frameworkInfoDictionary method returns the NSDict with Version set to 1.2.

The observation is valid when Growl is installed at ~/Library/PreferencePanes/ or /Library/PreferencePanes/.

Also every time the install option is popped up, it opens a Finder where Growl Pref pane is getting unzipped. The folder would have Growl.prefPane.zip and Growl.prefPane. The path in my Mac is /private/var/folders/Ta/QweGfdISD-GFer09fErDFr+++TI/-Tmp-/GrowlInstallations/ABCD5EFG-3568-2S8G-21ED-SD42DF4E21SD/. Will this be fixed in future?
User avatar
smajor
Latté
Posts: 84
Joined: Fri Dec 03, 2004 11:56 pm
Location: 127.0.0.1
Contact:

Re: Growl[1.2] installation pops up when helper app is stopped.

Post by smajor »

Actually, I've seen #2 as a regular growl user.

I have a TON of start up items. If Growl (1.2) has not yet been started, but is properly installed, and I fire up something like Adium, it offers to install Growl.

If I give my Mac time to finish it's startup routine, this does not happen.
Kiranb0007
Harmless
Posts: 3
Joined: Thu Oct 15, 2009 1:16 pm

Re: Growl[1.2] installation pops up when helper app is stopped.

Post by Kiranb0007 »

I was having a glance at the Growl code. In the method notifyWithDictionary:, it appears that if the check for Growl running returns negative, it is coded to request installation. Here is the code snippet of the function that is responsible to post the notification :

Code: Select all

+ (void) notifyWithDictionary:(NSDictionary *)userInfo {
	//post it.
	if (growlLaunched) {		
	//kiran Code to post the notification.
	 }
	 else {
#ifdef GROWL_WITH_INSTALLER
		/*if Growl launches, and the user hasn't already said NO to installing
		 *	it, store this notification for posting
		 */
		if (!userChoseNotToInstallGrowl) {
			if (!queuedGrowlNotifications)
				queuedGrowlNotifications = [[NSMutableArray alloc] init];
			[queuedGrowlNotifications addObject:userInfo];

			//kiran Why is the code below here?

			//if we have not already asked the user to install Growl, do it now
			if (!promptedToInstallGrowl) {
				[GrowlInstallationPrompt showInstallationPrompt];
				promptedToInstallGrowl = YES;
			}
		}
#endif
As i am new to Growl code, I am not sure why this is in place. Looking into the above, it appears that Installation prompt is deliberately done when Growl is not running. Why such a requirement?
Locked