[Differential] [Commented On] D4663: Allow setting the timeout value.

2017-02-25 Thread Martin Klapetek
mck182 added a comment.


  To expand on what Thomas said, SNI is just a specification,
  the implementation is fully up to the shells. We chose to
  implement it as systray icons, but some innovation there
  could take it to much different places. So far nobody has
  come with ideas of what that innovation may be, however.
  
  As for Gnome and their standard, well from your point of
  view it may all seem great, but with couple years of maintaining
  our notification system I will just disagree with you and leave
  it there because this is not the place for this conversation.

REPOSITORY
  R289 KNotifications

REVISION DETAIL
  https://phabricator.kde.org/D4663

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: albertvaka, #frameworks, apol
Cc: colomar, mck182, #frameworks


[Differential] [Commented On] D4663: Allow setting the timeout value.

2017-02-25 Thread Thomas Pfeiffer
colomar added a comment.


  > even Windows and Mac have deprecated them in favor of persistent 
notifications!
  >  Not only it's already implemented, but also it is what every major desktop 
and phone OS out there already use!
  
  SNIS != those legacy systray icons which were rightfully abolished. Systray 
icons are shown as long as an application is open (and with that they turn the 
syrtray into a secondary taskbar which makes no sense)
  
  An SNI may look the same, but the big difference is that it is only shown as 
long as a notification is present, so when used correctly, they do not clutter 
your systray with icons but instead give you a good overview of which 
applications want your attention, without ypu having to open a drawer which 
shows all notifications.
  
  I admit that what we currently have is more of an interim solution towards 
what Android does, and in the end SNIs should be merged with persistent 
notifications to get the full experience, but giving every application control 
over precisely how long a notification should be shown is not a good step in 
that direction.

REPOSITORY
  R289 KNotifications

REVISION DETAIL
  https://phabricator.kde.org/D4663

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: albertvaka, #frameworks, apol
Cc: colomar, mck182, #frameworks


[Differential] [Commented On] D4663: Allow setting the timeout value.

2017-02-21 Thread Martin Klapetek
mck182 added a comment.


  >   I don't think that KNotification as a framework should hide this feature 
from the developer.
  
  I, on the other hand, don't see why the developer should need
  this feature; as I said before - there's no scenario where the
  app should want either really short or really long time on the
  screen - this should always be fully up to the shell displaying
  the notifications. If you do need to have the notification bubble
  on the screen for really long time, then imho that's a wrong
  solution to the problem it'd be solving.
  
  And that applies to this case as well. KDE's Bluetooth integration
  is solving the same problem (pairing devices) and it uses a dialog,
  which imho makes sense, because with notification you're supposed
  to inform the user that something has happened and he may or may
  not react to that something, while what you're doing requires direct
  user interaction and what you're trying to solve is the possible lack
  of that direct interaction. So I honestly think that a notification is not
  even the right approach here altogether.
  
  > they do that using the notifications cross-desktop standard. So I wouldn't 
criticize Gnome for doing their own thing here.
  
  Oh really? :) Ever wondered why the spec you're referring to
  is full of only Gnome's extensions and is hosted on Gnome's
  servers? It's because Gnome considers the Galago project,
  the actual cross-desktop notifications project, dead. They took
  over libnotify and they consider that implementation to be the
  canonical upstream for the specification. In other words, Gnome
  has full control over that spec, can do what they want and can just
  as easily block any of our contributions. Sure, it is based and
  backwards-compatible with the cross-desktop standard, but it
  stopped being actual cross-desktop standard long time ago.
  If you feel like changing that, this would be a good start:
  https://bugzilla.gnome.org/show_bug.cgi?id=748145
  
  > @colomar: This would be perfect, but it would need a whole lot of work from 
both the desktop environment and the application side.
  
  It's actually not that hard as far as the last three points go. This
  can be fully implemented in the notification's server (ie. Plasma)
  and the apps changes would be minimal.  I even had a branch
  doing exactly that, I just never had the time to finish it. But basically
  the idea is - every new notification that arrives to the server is
  directly mapped to a KSNI - title to title, text to subtitle, actions
  to SNI actions. The lifecycle is a bit tricky (eg. when it is not needed
  anymore) but still can be done. I meant to mostly mimic what
  Android is doing. The only part remaining to solve is the drawer
  that has all the SNIs and their action in some sensible way.

REPOSITORY
  R289 KNotifications

REVISION DETAIL
  https://phabricator.kde.org/D4663

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: albertvaka, #frameworks, apol
Cc: colomar, mck182, #frameworks


[Differential] [Commented On] D4663: Allow setting the timeout value.

2017-02-21 Thread Thomas Pfeiffer
colomar added a comment.


  I agree that what Android does makes a lot of sense. What they have is
  
  - a permanent icon in the top bar for each application that still has an open 
notification - basically an SNI, minus the direct interactivity (which makes 
sense given that tiny icons are not much fun to interact with on a touchscreen)
  - a drawer that shows all notifications that are still valid (plus the same 
on the lockscreen if enabled)
  
  I have not seen a better notification system anywhere so far, to be honest. 
It would make perfect sense for me if Plasma did exactly the same, but we'd 
still need to change a couple of things for that to work:
  
  - We'd need a drawer to show all notifications that are still valid (similar 
to the notification history that we had in Plasma 4, but with some very 
important differences, see below)
  - We'd need to automatically create an SNI for every application that sends a 
notification
  - Notifications would need to be grouped by application (the notification 
drawer on iOS shows what a horrible mess you get if you don't do that)
  - Notifications would need to be cleaned up by applications when no longer 
needed (this would need a new API for applications)
  
  This would be perfect, but it would need a whole lot of work from both the 
desktop environment and the application side.
  
  As long as we can't get there, I agree with Martin that an SNI is a better 
solution than a permanently shown popup notification, as it attracts attention 
without covering anything on the screen.

REPOSITORY
  R289 KNotifications

REVISION DETAIL
  https://phabricator.kde.org/D4663

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: albertvaka, #frameworks, apol
Cc: colomar, mck182, #frameworks


[Differential] [Commented On] D4663: Allow setting the timeout value.

2017-02-21 Thread Albert Vaca Cintora
albertvaka added a comment.


  I agree that just rising the timeout is suboptimal but I still like it better 
than a modal dialog... Actually, notifications were invented as a way to avoid 
harassing the user with modal dialogs when apps need attention.
  
  Apart from that, and even if we end up implementing this in a diferent way 
for KDE Connect, I don't think that KNotification as a framework should hide 
this feature from the developer. Regardless of the notification server 
implementation, the underlying protocol that KNotification exposes does allow 
defining a timeout.
  
  And, about SNIs... It's true that they have a title, text and actions like 
notifications. But they also happen to be represented in every major desktop 
(eg: Windows, MacOS, Gnome, Unity and Plasma) as an icon in the system tray 
that you have to right click to access a context menu with the actions (unlike 
notifications). Are you sure that's what Android does?
  
  Gnome implements something much more similar to the notification systems 
nowadays present in Android and iOS (and even Windows and MacOS, which are 
trying to deprecate their system tray icons), and they do that using the 
notifications cross-desktop standard. So I wouldn't criticize Gnome for doing 
their own thing here.

REPOSITORY
  R289 KNotifications

REVISION DETAIL
  https://phabricator.kde.org/D4663

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: albertvaka, #frameworks, apol
Cc: mck182, #frameworks


[Differential] [Commented On] D4663: Allow setting the timeout value.

2017-02-21 Thread Martin Klapetek
mck182 added a comment.


  Well, I would argue that Android is using exactly indicators
  which we know as SNIs. It's the same thing - it's an icon in
  your top panel and when you pull the panel down, you see
  the title, text and available actions. This is _exactly_ what
  SNI does, it just so happens that on desktop the representation
  is always an icon with context menu. It has title, text and
  actions and is often accompanied by a popup notification.
  
  That said, I realize you want to target as broad userbase
  as possible, but if Gnome decides to not be cross-desktop
  compatible, well screw 'em, their fault. It bothers me that
  people always have to find alternate, many times sub-par
  solutions and the reason is "Gnome" that never wants to
  play along with about anything. But I digress.
  
  I still think having a notification sticked to the screen
  with indefinitely-high timeout is not the solution. If only
  for the unpredictability of servers. Given the user has to
  initiate the pairing and the user is then expected and required
  to complete the pairing, how about using some modal way
  to confirm the pairing? Like a popup dialog? I mean if the
  point of the interaction is to complete the pairing and if
  it's imperative that the pairing completes, then just put
  it in front of the user square and center to confirm. Raising
  the notification timeout for this to me is a workaround
  at best.

REPOSITORY
  R289 KNotifications

REVISION DETAIL
  https://phabricator.kde.org/D4663

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: albertvaka, #frameworks, apol
Cc: mck182, #frameworks


[Differential] [Commented On] D4663: Allow setting the timeout value.

2017-02-18 Thread Albert Vaca Cintora
albertvaka added a comment.


  I don't think indicators are the future of notifications :/
  
  If you have a look at modern systems like Android (which had the luxury of 
designing a notification system without having to think about legacy), they 
have nothing like app indicators: they use persistent notifications instead. 
Gnome has also taken that way [1], so if we make appindicarors a core part of 
kdeconnect, we will never look native on Gnome... I'm trying to find a 
different solution.
  
  [1] https://wiki.gnome.org/Design/OS/MessageTray/Compatibility

REPOSITORY
  R289 KNotifications

REVISION DETAIL
  https://phabricator.kde.org/D4663

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: albertvaka, #frameworks, apol
Cc: mck182, #frameworks


[Differential] [Commented On] D4663: Allow setting the timeout value.

2017-02-18 Thread Martin Klapetek
mck182 added a comment.


  I see your usecase, but I think there might be better solution overall
  and that would involve not actually depending on the notification. As
  you say, servers should enforce maximum timeout, Plasma does just
  that and there's no safe way to predict what other servers would do.
  
  You could simply create a StatusNotifierItem with "demands-attention"
  state, that would cause it to blink, pulse or do whatever the implementation
  does. The good thing about this is that this would be animated in the
  screen basically forever while not being obtrusive. In Plasma it even
  raises a panel that is hidden. It's also fully cross platform and in fact,
  it is where the persistent notifications should evolve into (where
  persistent is the persistence you're looking for in your usecase). This
  would be in addition to the regular notification, not its replacement.
  Clicking the SNI would result in the exact same action you'd get from
  the notification. Plus, KSNI lives in the KNotification lib, so no new
  dependency. How's that?

REPOSITORY
  R289 KNotifications

REVISION DETAIL
  https://phabricator.kde.org/D4663

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: albertvaka, #frameworks, apol
Cc: mck182, #frameworks


[Differential] [Commented On] D4663: Allow setting the timeout value.

2017-02-18 Thread Albert Vaca Cintora
albertvaka added a comment.


  I understand the potential of it being misused, even though I don't think we 
should treat developers as if they didn't know what they are doing. Also, if we 
want to have a maximum timeout, this is something that should be enforced on 
the server (ie: Plasma) instead of the client. There will be apps using 
libnotify or any other lib that can set their timeouts.
  
  The reason I added this is because in KDE Connect we show notifications when 
there is an incoming "pair request", and I wanted to make the notification stay 
there for as long as the request is valid. Since the notification is the only 
way to accept the pair request, I think it results in a bad user experience if 
the notification disappears before the user can act on it.
  
  There is an alternative solution to my use case: making the notification 
persistent and manually dismissing it when the request is no longer valid, but 
I've decided to not implement it this way because some notification servers 
don't support persistent notifications (eg: Ubuntu Unity).
  
  What do you think?

REPOSITORY
  R289 KNotifications

REVISION DETAIL
  https://phabricator.kde.org/D4663

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: albertvaka, #frameworks, apol
Cc: mck182, #frameworks


[Differential] [Commented On] D4663: Allow setting the timeout value.

2017-02-18 Thread Martin Klapetek
mck182 added a comment.


  This was discussed couple times before and the reason
  this was never added is because of potential misuse of
  this by setting extremely high value, making the bubble
  virtually sticked to your screen forever. This should be
  handled by the server that should do the right thing(tm)
  like eg. Plasma does a word count and then with simple
  heuristic determines the display time. Regardless of
  Plasma however, the server should always have a sensible
  default that all apps should follow, therefore this option
  was never added and I still think it shouldn't be there
  today; I can't see a reason why would you want the
  bubble to be displayed for either very short time or very
  long time. For anything in between the server default
  should be good enough.

REPOSITORY
  R289 KNotifications

REVISION DETAIL
  https://phabricator.kde.org/D4663

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: albertvaka, #frameworks, apol
Cc: mck182, #frameworks