Publish Vulpes Preview 15 sources for desktop, Android and Tundra

Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
OverSu 2026-09-30 23:13:03 +02:00
commit b38dea0597
25901 changed files with 9982925 additions and 369 deletions

View file

@ -0,0 +1,151 @@
/* global DUMP */
/* global SettingsHelper */
/* global wakeUpFindMyDevice */
/* global Notification */
/* global NotificationHelper */
/* global MozActivity */
/* global Service */
/* global LazyLoader */
/* global IAC_API_WAKEUP_REASON_ENABLED_CHANGED */
/* global IAC_API_WAKEUP_REASON_LOGIN */
/* global IAC_API_WAKEUP_REASON_LOGOUT */
/* global IAC_API_WAKEUP_REASON_STALE_REGISTRATION */
/* global IAC_API_WAKEUP_REASON_LOCKSCREEN_CLOSED */
'use strict';
const FMD_MAX_REGISTRATION_RETRIES = 5;
const FMD_ENABLE_FAILURE_NOTIFICATION_TAG = 'findmydevice.enable-failed';
// Open settings at the findmydevice section
var FMDOpenSettings = function() {
var activity = new MozActivity(
{
name : 'configure',
data : {
target : 'device',
section: 'findmydevice'
}
});
activity.onerror = function (e) {
DUMP('There was a problem opening settings: '+e);
};
};
function FMDNotifications () {}
FMDNotifications.prototype = {
handleSystemMessageNotification: function(message) {
FMDOpenSettings();
this.closeSystemMessageNotification(message);
},
closeSystemMessageNotification: function(msg) {
Notification.get({ tag: msg.tag }).then(notifs => {
notifs.forEach(notif => {
if (notif.tag) {
// Close notification with the matching tag
if (notif.tag === msg.tag) {
notif.close && notif.close();
}
} else {
// If we have notification without a tag, check on the body
if (notif.body === msg.body) {
notif.close && notif.close();
}
}
});
});
},
};
var FMDNotificationsHandler = new FMDNotifications();
function FMDInit() {
Service.request('handleSystemMessageNotification',
'findmydevice', FMDNotificationsHandler);
navigator.mozSettings.addObserver('findmydevice.enabled', function(event) {
// make sure Find My Device is registered if it's enabled,
// and that it notifies the server if disabled
wakeUpFindMyDevice(IAC_API_WAKEUP_REASON_ENABLED_CHANGED);
});
var fmdEnabledHelper = SettingsHelper('findmydevice.enabled');
navigator.mozSettings.addObserver('findmydevice.retry-count',
function(event) {
// Make sure a notification is displayed if the retry count is exceeded
if (event.settingValue >= FMD_MAX_REGISTRATION_RETRIES) {
fmdEnabledHelper.set(false);
var icon = 'style/find_my_device/images/findMyDevice.png';
var titleL10n = 'unable-to-connect';
var bodyL10n = 'tap-to-check-settings';
NotificationHelper.send(titleL10n,
{
bodyL10n: bodyL10n,
icon: icon,
tag: FMD_ENABLE_FAILURE_NOTIFICATION_TAG,
data: {
systemMessageTarget: 'findmydevice'
}
}).then(notification => {
notification.onclick = function(evt) {
FMDOpenSettings();
};
});
}
});
navigator.mozSettings.addObserver('geolocation.enabled', function(event) {
// invalidate registration so we can report to the server
// whether tracking is enabled or not, which depends on
// geolocation
wakeUpFindMyDevice(IAC_API_WAKEUP_REASON_STALE_REGISTRATION);
});
var lockMessageHelper = SettingsHelper('lockscreen.lock-message');
window.addEventListener('lockscreen-request-unlock', function(event) {
if (event.detail && event.detail.activity &&
'record' === event.detail.activity.name) {
// Let's make sure we won't start FMD when user triggers Camera from
// the lockscreen.
return;
}
// clear the lockscreen lock message
lockMessageHelper.set('');
// stop the ringer if it's currently being rung
wakeUpFindMyDevice(IAC_API_WAKEUP_REASON_LOCKSCREEN_CLOSED);
});
var loggedInHelper = SettingsHelper('findmydevice.logged-in');
window.addEventListener('mozFxAccountsUnsolChromeEvent', function(event) {
if (!event || !event.detail) {
return;
}
var eventName = event.detail.eventName;
DUMP('findmydevice received ' + eventName + ' FxA event in the System app');
if (eventName === 'onlogin' || eventName === 'onverified') {
loggedInHelper.set(true);
wakeUpFindMyDevice(IAC_API_WAKEUP_REASON_LOGIN);
} else if (eventName === 'onlogout') {
loggedInHelper.set(false);
wakeUpFindMyDevice(IAC_API_WAKEUP_REASON_LOGOUT);
}
});
}
window.FindmydeviceLauncher = function() {};
window.FindmydeviceLauncher.prototype.start = function() {
return LazyLoader.load([
'shared/js/findmydevice_iac_api.js',
'shared/js/settings_helper.js'
]).then(function() {
FMDInit();
});
};