diff --git a/html/src/app.js b/html/src/app.js
index 48782801..85e3fbfd 100644
--- a/html/src/app.js
+++ b/html/src/app.js
@@ -5149,6 +5149,38 @@ speechSynthesis.getVoices();
removeFromArray(this.friendsGroup3_, ctx);
removeFromArray(this.friendsGroupD_, ctx);
}
+ if (typeof ctx.ref !== 'undefined') {
+ if ((ctx.ref.$offline_for === '') &&
+ ((state === 'offline') || (state === 'active')) &&
+ (ctx.state === 'online')) {
+ ctx.ref.$online_for = '';
+ ctx.ref.$offline_for = Date.now();
+ if (ctx.state === 'online') {
+ var ts = Date.now();
+ var time = ts - ctx.ref.$location_at;
+ this.addFeed('Offline', ctx.ref, {
+ location: (ctx.ref.location === 'offline') ? '' : ctx.ref.location,
+ time: time
+ });
+ }
+ }
+ if ((state === 'online')) {
+ ctx.ref.$location_at = Date.now();
+ ctx.ref.$online_for = Date.now();
+ ctx.ref.$offline_for = '';
+ API.getUser({
+ userId: id
+ }).then((args) => {
+ this.addFeed('Online', args.ref, {
+ location: args.ref.location
+ });
+ }).catch(() => {
+ this.addFeed('Online', ctx.ref, {
+ location: ctx.ref.location
+ });
+ });
+ }
+ }
// changing property triggers Vue
// so, we need compare and set
if (ctx.state !== state) {
@@ -5184,23 +5216,6 @@ speechSynthesis.getVoices();
this.friendsGroup3_.push(ctx);
this.friendsGroupD_.unshift(ctx);
}
- if (typeof ctx.ref !== 'undefined') {
- if ((ctx.ref.$offline_for === '') &&
- ((ctx.state === 'offline') && ctx.ref.state === '') ||
- (((ctx.state === 'offline') || (ctx.state === 'active')) &&
- ((ctx.ref.state === 'online')))) {
- ctx.ref.$online_for = '';
- ctx.ref.$offline_for = Date.now();
- }
- if (ctx.state === 'online') {
- ctx.ref.$location_at = Date.now();
- ctx.ref.$online_for = Date.now();
- ctx.ref.$offline_for = '';
- API.getUser({
- userId: id
- });
- }
- }
}
};
@@ -5478,25 +5493,16 @@ speechSynthesis.getVoices();
if ($app.friends.has(ref.id) === false) {
return;
}
- if (props.location) {
- if (props.location[0] === 'offline') {
- $app.addFeed('Offline', ref, {
- location: props.location[1],
- time: props.location[2]
- });
- } else if (props.location[1] === 'offline') {
- $app.addFeed('Online', ref, {
- location: props.location[0]
- });
- } else {
- $app.addFeed('GPS', ref, {
- location: [
- props.location[0],
+ if ((props.location) &&
+ (props.location[0] !== 'offline') &&
+ (props.location[1] !== 'offline')) {
+ $app.addFeed('GPS', ref, {
+ location: [
+ props.location[0],
props.location[1]
],
- time: props.location[2]
- });
- }
+ time: props.location[2]
+ });
}
if (props.currentAvatarImageUrl ||
props.currentAvatarThumbnailImageUrl) {