@@ -4,16 +4,21 @@ function sepiaFW_build_always_on(){
44
55 var AVATAR_FADE_DELAY = 120000 ;
66 var CONTROLS_FADE_DELAY = 5000 ;
7+ var INFO_FADE_DELAY = 5000 ;
78 var ALARM_ANIMATION_ACTIVE = 12000 ;
89
910 //elements
1011 var $mainWindow = undefined ;
1112 var $carouselPanes = undefined ;
1213 var $alarmArea = undefined ;
1314 var $topLayer = undefined ;
15+ var $avatar = undefined ;
1416 var $activityArea = undefined ;
1517 var $avatarEyelid = undefined ;
1618 var $avatarMouth = undefined ;
19+ var $clock = undefined ;
20+ var $notes = undefined ;
21+ var $battery = undefined ;
1722
1823 //some states
1924 AlwaysOn . isOpen = false ;
@@ -26,6 +31,7 @@ function sepiaFW_build_always_on(){
2631 //some settings
2732 AlwaysOn . autoEnableVoice = true ;
2833 AlwaysOn . autoLoadOnPowerPlug = true ;
34+ var preventNoteIndicatorFadeIfNotZero = true ; //keep the missed notes indicator alive?
2935
3036 //Load always-on screen
3137 AlwaysOn . start = function ( ) {
@@ -55,10 +61,14 @@ function sepiaFW_build_always_on(){
5561 $mainWindow = $ ( '#sepiaFW-main-window' ) ;
5662 $carouselPanes = $ ( '.sepiaFW-carousel-pane' ) ;
5763 $alarmArea = $ ( '.sepiaFW-alwaysOn-navbar' ) ;
58- $topLayer = $ ( '#sepiaFW-alwaysOn-avatar' ) . closest ( '.sepiaFW-top-layer-view' ) ;
59- $activityArea = $ ( '#sepiaFW-alwaysOn-avatar' ) . find ( '.avatar-activity' ) ;
60- $avatarEyelid = $ ( "#sepiaFW-alwaysOn-avatar" ) . find ( ".avatar-eyelid" ) ;
61- $avatarMouth = $ ( "#sepiaFW-alwaysOn-avatar" ) . find ( ".avatar-mouth" ) ;
64+ $avatar = $ ( "#sepiaFW-alwaysOn-avatar" ) ;
65+ $topLayer = $avatar . closest ( '.sepiaFW-top-layer-view' ) ;
66+ $activityArea = $avatar . find ( '.avatar-activity' ) ;
67+ $avatarEyelid = $avatar . find ( ".avatar-eyelid" ) ;
68+ $avatarMouth = $avatar . find ( ".avatar-mouth" ) ;
69+ $clock = $ ( '#sepiaFW-alwaysOn-clock' ) ;
70+ $notes = $ ( '#sepiaFW-alwaysOn-notifications' ) ;
71+ $battery = $ ( '#sepiaFW-alwaysOn-battery' ) ;
6272 }
6373
6474 //On open
@@ -75,7 +85,7 @@ function sepiaFW_build_always_on(){
7585 //show avatar and stuff
7686 if ( openFadeTimer ) clearTimeout ( openFadeTimer ) ;
7787 openFadeTimer = setTimeout ( function ( ) {
78- $ ( "#sepiaFW-alwaysOn- avatar" ) . css ( { opacity :'0' } ) . show ( ) . animate ( { opacity :'1.0' } , { complete :function ( ) {
88+ $avatar . css ( { opacity :'0' } ) . show ( ) . animate ( { opacity :'1.0' } , { complete :function ( ) {
7989 fadeOutNavbarControlsAfterDelay ( CONTROLS_FADE_DELAY ) ;
8090 fadeAvatarToRandomPosAfterDelay ( AVATAR_FADE_DELAY ) ;
8191 } , duration : 1000 } ) ;
@@ -103,7 +113,7 @@ function sepiaFW_build_always_on(){
103113 //console.log('close');
104114 //stop reposition script
105115 if ( fadeAvatarTimer ) clearTimeout ( fadeAvatarTimer ) ;
106- $ ( "#sepiaFW-alwaysOn- avatar" ) . fadeOut ( 300 ) ;
116+ $avatar . fadeOut ( 300 ) ;
107117 //allow sleep again
108118 AlwaysOn . allowSleep ( ) ;
109119 //restore designs - TODO: we should reduce the necessary modifiers!
@@ -134,7 +144,7 @@ function sepiaFW_build_always_on(){
134144 wakeAvatar ( ) ;
135145 //show info items for a while
136146 showLocalTimeAndFade ( ) ;
137- showNotificationsAndFade ( ) ;
147+ showNotificationsAndFade ( INFO_FADE_DELAY , preventNoteIndicatorFadeIfNotZero ) ;
138148 showBatteryAndFade ( ) ;
139149 }
140150 AlwaysOn . avatarIdle = function ( ) {
@@ -216,6 +226,8 @@ function sepiaFW_build_always_on(){
216226 }
217227 //remove animation
218228 removeAlarmAnimation ( ) ;
229+ //remove missed event (since the user actively stopped it)
230+ SepiaFW . ui . addMissedMessage ( - 1 ) ;
219231 }
220232 }
221233 function removeAlarmAnimation ( ) {
@@ -268,7 +280,6 @@ function sepiaFW_build_always_on(){
268280
269281 //Fade out avatar slowly after a certain delay and respawn at random pos (OLED screen protection)
270282 function fadeAvatarToRandomPosAfterDelay ( delay ) {
271- var $avatar = $ ( "#sepiaFW-alwaysOn-avatar" ) ;
272283 //stop any running timers and animations and restore opacity
273284 if ( fadeAvatarTimer ) clearTimeout ( fadeAvatarTimer ) ;
274285 $avatar . stop ( ) . css ( { opacity :'1.0' } ) ;
@@ -287,14 +298,13 @@ function sepiaFW_build_always_on(){
287298 } , delay ) ;
288299 //show info items for a while
289300 showLocalTimeAndFade ( ) ;
290- showNotificationsAndFade ( ) ;
301+ showNotificationsAndFade ( INFO_FADE_DELAY , preventNoteIndicatorFadeIfNotZero ) ;
291302 showBatteryAndFade ( ) ;
292303 }
293304 var fadeAvatarTimer ;
294305
295306 //Move Avatar to new random position withing view
296307 function setNewAvatarRandomPosition ( ) {
297- var $avatar = $ ( "#sepiaFW-alwaysOn-avatar" ) ;
298308 var availableHeight = $ ( '#sepiaFW-alwaysOn-view' ) . height ( ) ;
299309 var availableWidth = $ ( '#sepiaFW-alwaysOn-view' ) . width ( ) ;
300310 var avatarHeigth = $avatar . height ( ) ;
@@ -315,10 +325,9 @@ function sepiaFW_build_always_on(){
315325 var short = true ;
316326 var timeWithIcon =
317327 '<i class="material-icons md-txt">access_time</i> ' + SepiaFW . tools . getLocalTime ( short ) ;
318- $clock = $ ( '#sepiaFW-alwaysOn-clock' ) ;
319328 $clock . html ( timeWithIcon ) ;
320329 $clock . stop ( ) . fadeIn ( 500 , function ( ) {
321- if ( fadeOutAfterDelay == undefined ) fadeOutAfterDelay = 5000 ;
330+ if ( fadeOutAfterDelay == undefined ) fadeOutAfterDelay = INFO_FADE_DELAY ;
322331 if ( fadeClockTimer ) clearTimeout ( fadeClockTimer ) ;
323332 fadeClockTimer = setTimeout ( function ( ) {
324333 $clock . fadeOut ( 3000 ) ;
@@ -328,16 +337,17 @@ function sepiaFW_build_always_on(){
328337 var fadeClockTimer ;
329338
330339 //Show missed notifications for a while
331- function showNotificationsAndFade ( fadeOutAfterDelay ) {
340+ function showNotificationsAndFade ( fadeOutAfterDelay , keepIfNotZero ) {
332341 var missedNotesWithIcon =
333342 '<i class="material-icons md-txt">notifications_none</i> ' + SepiaFW . ui . getNumberOfMissedMessages ( ) ;
334- $notes = $ ( '#sepiaFW-alwaysOn-notifications' ) ;
335343 $notes . html ( missedNotesWithIcon ) ;
336344 $notes . stop ( ) . fadeIn ( 500 , function ( ) {
337- if ( fadeOutAfterDelay == undefined ) fadeOutAfterDelay = 5000 ;
345+ if ( fadeOutAfterDelay == undefined ) fadeOutAfterDelay = INFO_FADE_DELAY ;
338346 if ( fadeNotificationsTimer ) clearTimeout ( fadeNotificationsTimer ) ;
339347 fadeNotificationsTimer = setTimeout ( function ( ) {
340- $notes . fadeOut ( 3000 ) ;
348+ if ( ! keepIfNotZero || SepiaFW . ui . getNumberOfMissedMessages ( ) <= 0 ) {
349+ $notes . fadeOut ( 3000 ) ;
350+ }
341351 } , fadeOutAfterDelay ) ;
342352 } ) ;
343353 }
@@ -360,15 +370,16 @@ function sepiaFW_build_always_on(){
360370 }
361371 var batteryWithIcon =
362372 '<i class="material-icons md-txt">' + batteryIcon + '</i> ' + AlwaysOn . batteryPercentage ;
363- $battery = $ ( '#sepiaFW-alwaysOn-battery' ) ;
364373 $battery . html ( batteryWithIcon ) ;
365374 $battery . stop ( ) . fadeIn ( 500 , function ( ) {
366- if ( fadeOutAfterDelay == undefined ) fadeOutAfterDelay = 5000 ;
375+ if ( fadeOutAfterDelay == undefined ) fadeOutAfterDelay = INFO_FADE_DELAY ;
367376 if ( fadeBatteryTimer ) clearTimeout ( fadeBatteryTimer ) ;
368377 fadeBatteryTimer = setTimeout ( function ( ) {
369378 $battery . fadeOut ( 3000 ) ;
370379 } , fadeOutAfterDelay ) ;
371380 } ) ;
381+ } else {
382+ $battery . hide ( ) ;
372383 }
373384 }
374385 var fadeBatteryTimer ;
0 commit comments