Update shared Gaia workflows and Sargo development tooling

Fix camera switching and Contacts/SMS activity routing across shared hosts.
Integrate Marketplace installation and native standalone recovery tools,
Bluetooth runtime packages and trusted certificates.

Update English/French READMEs and the shared changelog with tested scope
and remaining radio/audio/Bluetooth limitations. Preview17 remains the
existing APK; no new native image is released.

Validation: shared JavaScript and native Python tests; Android packaging
and payload parity from an isolated publication checkout.
This commit is contained in:
OverSu 2026-10-08 14:27:17 +02:00
commit 0041cd9660
101 changed files with 3883 additions and 335 deletions

View file

@ -19,7 +19,7 @@ const VCARD_MIME_TYPES = [
var ActivityHandler = {
_currentActivity: null,
_launchedAsInlineActivity: (window.location.search == '?pick'),
_launchedAsInlineActivity: new URLSearchParams(window.location.search).has('pick'),
mozContactParam: null,
@ -124,6 +124,7 @@ var ActivityHandler = {
this.launch_activity(activity, 'add-parameters');
break;
case 'pick':
if (window.VulpesCompat) this._launchedAsInlineActivity = true;
if (!this._launchedAsInlineActivity) {
return;
}
@ -356,15 +357,18 @@ var ActivityHandler = {
postNewSuccess: function ah_postNewSuccess(contact) {
this._currentActivity.postResult({ contact: contact });
this._currentActivity = null;
if (window.VulpesCompat) this._launchedAsInlineActivity = false;
},
postPickSuccess: function ah_postPickSuccess(result) {
this._currentActivity.postResult(result);
this._currentActivity = null;
if (window.VulpesCompat) this._launchedAsInlineActivity = false;
},
postCancel: function ah_postCancel() {
this._currentActivity.postError('canceled');
this._currentActivity = null;
if (window.VulpesCompat) this._launchedAsInlineActivity = false;
}
};

View file

@ -655,7 +655,9 @@ var Contacts = (function() {
utils.PerformanceHelper.contentInteractive();
utils.PerformanceHelper.chromeInteractive();
window.setTimeout(Contacts && Contacts.onLocalized);
if (window.navigator.mozSetMessageHandler && window.self == window.top) {
// Vulpes embeds each app in its own permission-checked frame.
if (window.navigator.mozSetMessageHandler &&
(window.self == window.top || window.VulpesCompat)) {
LazyLoader.load(['/shared/js/contacts/import/utilities/misc.js',
'/shared/js/contacts/import/utilities/vcard_reader.js',
'/shared/js/contacts/import/utilities/vcard_parser.js'],

View file

@ -1038,6 +1038,8 @@ contacts.Form = (function() {
// (Bug 1041455).
if (editingContact) {
Contacts.setCurrent(contact);
// The change event may arrive while the edit form is still visible.
Contacts.updateContactDetail(contact.id);
}
}
);