wshirey / growl

Automatically exported from code.google.com/p/growl
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Notification Center per application #536

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
We've received quite a few requests for adding support for NC on a per 
application basis. This could be either an action or a visual display, but I 
would think a visual display would make more sense from just a UI standpoint.

Original issue reported on code.google.com by ch...@growl.info on 5 Oct 2012 at 5:19

GoogleCodeExporter commented 8 years ago
So, I've been thinking on this.  Our present system for telling the framework 
to use NC is an all or nothing solution realistically.  Ping/Pong cant be 
scaled to every app and note type, much less the rules per specific 
notification system that is coming in 2.1.  

The best idea I've come up with for a Growl shipped solution (as opposed to a 
third party plugin) so far is that if the resolved display style (and it would 
need to be a visual display really) is the NC display, and the framework is new 
enough, we return back an error code that tells the framework to use its NC 
implementation (this is due to the icon being only the app that sent it issue). 
 If the framework isn't new enough, Growl uses its NC implementation.

This has a couple of hitches, first, the framework needs updating, this is 
likely unavoidable no matter what we do due to the limitations of NC (mainly 
the icon issue).   Second, the server structure and the rules structure 
conflict somewhat in this regard.  The server expects a response about the fate 
of a notification immediately upon calling dispatchNotificationWithDictionary, 
while rules asynchronously evaluates the notification (it presently fakes it 
out and returns enabled regardless of whether it was or not).  This will 
require reworking parts of the server and to be willing to hold a notification 
packet/socket while it waits for a response from the rules system.  

To be honest, the requirement for updating the framework makes this a less than 
desirable level of user and developer experience, but like I said, not really 
avoidable that I can tell.  If we want per app system, this is (as far as I can 
think) the best/only real route available.

Original comment by dan...@growl.info on 30 Nov 2012 at 2:04

GoogleCodeExporter commented 8 years ago
As an alternate solution, again with it's own issues.  We could switch from 
using Growl.app's internal NC implementation to using Bark's if Bark is 
installed.

Pros:
It's easy to install Bark
Does not require upgrading of frameworks
Makes notifications appear in NC as if they are from their proper app
Notifications are still clickable.
Extremely easy to code - ~5 lines of code, does not interfere with any other 
part of Growl to enable this feature

Cons:
Requires users install a third party plugin
Could face a problem with review if we link directly from within Growl to 
barkplug.in

Note, linking to their website doesn't conflict with the rule about downloading 
code which modifies growl, as we don't initiate the download, only direct the 
user to their website. However, it may be considered skirting the rules too 
closely on NC to link to it.

To me this is the simpler, better solution ultimately.  Upgrading frameworks is 
a cumbersome task for developers and users, and for users, not 100% safe.  Id 
much rather tell someone to install a plugin than to tell them to muck with a 
framework, and Id rather not tell developers they ought to upgrade their 
frameworks again to support this feature.  

Original comment by dan...@growl.info on 30 Nov 2012 at 11:36

GoogleCodeExporter commented 8 years ago
Let's use the bark plugin. Put the link into preferences somewhere. We need to 
talk to the bark developers. If the app store rejects for linking to their 
page, we'll remove the link obviously. It really sounds like the better 
solution for people using Growl, developers, and us.

Original comment by ch...@growl.info on 30 Nov 2012 at 11:43

GoogleCodeExporter commented 8 years ago
Backend done as of 7bfa1d57cdfe for 2.1, works with global or the rules 
"notification-center" display option (and of course users can just UI configure 
apps/notes to use the Bark action and no display style).  Flagging as started 
so we remember to get the UI changes done.  

Original comment by dan...@growl.info on 1 Dec 2012 at 1:14

GoogleCodeExporter commented 8 years ago
After discussion, UI idea has been scrapped, best not risk the fight with the 
app store powers that be.  Closing as fixed in source

Original comment by dan...@growl.info on 3 May 2013 at 6:20