Skip to content

Commit 4d5c65d

Browse files
committed
improved missed-messages handling and fixed some list bugs
1 parent 1d41566 commit 4d5c65d

File tree

6 files changed

+193
-101
lines changed

6 files changed

+193
-101
lines changed

www/scripts/sepiaFW.alwaysOn.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ function sepiaFW_build_always_on(){
4040
onFinishSetup: AlwaysOn.onFinishSetup,
4141
onOpen: AlwaysOn.onOpen,
4242
onClose: AlwaysOn.onClose,
43+
//onMessageHandler: AlwaysOn.onMessageHandler, //TODO: use this?
44+
onMissedMessageHandler: AlwaysOn.onMissedMessageHandler,
4345
theme: "dark_full"
4446
});
4547
}
@@ -135,6 +137,18 @@ function sepiaFW_build_always_on(){
135137
AlwaysOn.isOpen = false;
136138
}
137139

140+
//Missed messages handling
141+
AlwaysOn.onMissedMessageHandler = function(msgInfo){
142+
//console.log(msgInfo);
143+
//we only accept error messages and chat-other for now:
144+
if (msgInfo && msgInfo.name &&
145+
(msgInfo.name.indexOf('error') >= 0 || msgInfo.name.indexOf('chatOther') >= 0)
146+
){
147+
SepiaFW.ui.addMissedMessage();
148+
showNotificationsAndFade(INFO_FADE_DELAY, preventNoteIndicatorFadeIfNotZero);
149+
}
150+
}
151+
138152
//Animations and wake controls:
139153

140154
AlwaysOn.onWakeup = function(){

www/scripts/sepiaFW.frames.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,18 @@ function sepiaFW_build_frames(){
1010
var onFinishSetup = undefined;
1111
var onOpen = undefined;
1212
var onClose = undefined;
13+
14+
//handlers
15+
var onMessageHandler = undefined; //should receive a message object
16+
var onMissedMessageHandler = undefined; //should be triggered when a message was not visible for user (e.g. because frame was open)
1317

1418
Frames.open = function(info){
1519
//callbacks?
1620
onOpen = info.onOpen;
1721
onClose = info.onClose;
1822
onFinishSetup = info.onFinishSetup;
23+
onMessageHandler = info.onMessageHandler;
24+
onMissedMessageHandler = info.onMissedMessageHandler;
1925

2026
//theme
2127
if (info.theme && info.theme == "dark"){
@@ -61,6 +67,9 @@ function sepiaFW_build_frames(){
6167
onFinishSetup = undefined;
6268
onOpen = undefined;
6369
onClose = undefined;
70+
//handlers reset
71+
onMessageHandler = undefined;
72+
onMissedMessageHandler = undefined;
6473
}
6574

6675
Frames.setup = function(info, finishCallback){
@@ -111,6 +120,20 @@ function sepiaFW_build_frames(){
111120
$('#sepiaFW-frames-view').html("Error - could not load page");
112121
});
113122
}
123+
124+
Frames.canHandleMessages = function(){
125+
return !!onMessageHandler;
126+
}
127+
Frames.handleMessages = function(msgObject){
128+
if (onMessageHandler) onMessageHandler(msgObject);
129+
}
130+
131+
Frames.canHandleMissedMessages = function(){
132+
return !!onMissedMessageHandler;
133+
}
134+
Frames.handleMissedMessages = function(msgObject){
135+
if (onMissedMessageHandler) onMissedMessageHandler(msgObject);
136+
}
114137

115138
return Frames;
116139
}

www/scripts/sepiaFW.ui.build.js

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1242,12 +1242,35 @@ function sepiaFW_build_ui_build(){
12421242
block.className += ' hidden-by-settings';
12431243
}
12441244
}
1245-
article.innerHTML = ""
1246-
+ "<b class='" + classes + "'>" + senderText + ": </b>"
1247-
+ "<span class='status'>" + text + "</span>"
1248-
+ "<span class='timestamp'>" + time + "</span>";
1245+
//inner HTML:
1246+
var articleSender = document.createElement('b');
1247+
articleSender.className = classes;
1248+
articleSender.innerHTML = (senderText + ": ");
1249+
article.appendChild(articleSender);
1250+
1251+
var articleText = document.createElement('span');
1252+
articleText.className = 'status';
1253+
articleText.innerHTML = text;
1254+
article.appendChild(articleText);
1255+
1256+
var articleTimestamp = document.createElement('span');
1257+
articleTimestamp.className = 'timestamp';
1258+
articleTimestamp.innerHTML = time;
1259+
article.appendChild(articleTimestamp);
12491260

12501261
block.appendChild(article);
1262+
1263+
//add quick private message button
1264+
var closeBtn = articleTimestamp;
1265+
SepiaFW.ui.longPressShortPressDoubleTab(closeBtn, function(){
1266+
//long-press
1267+
},'',function(){
1268+
//short-press
1269+
$(article).remove();
1270+
},function(){
1271+
//double-tab
1272+
}, true);
1273+
12511274
return block;
12521275
}
12531276

0 commit comments

Comments
 (0)