1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-26 09:45:28 +03:00

Expose Cloud Build Options and hide tabs and features (#3332)

Expose Cloud Build Options

Add cloud build options to auto-detect
This commit is contained in:
Mark Haslinghuis 2023-03-03 00:11:20 +01:00 committed by GitHub
parent 65d0ab3796
commit 584e672c4d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 208 additions and 113 deletions

View file

@ -23,6 +23,7 @@ import { get as getConfig, set as setConfig } from "./ConfigStorage";
import { tracking } from "./Analytics";
import semver from 'semver';
import CryptoES from "crypto-es";
import BuildApi from "./BuildApi";
let mspHelper;
let connectionTimestamp;
@ -458,17 +459,39 @@ function checkReportProblems() {
});
}
function processUid() {
MSP.send_message(MSPCodes.MSP_UID, false, false, function () {
const deviceIdentifier = FC.CONFIG.deviceIdentifier;
tracking.setFlightControllerData(tracking.DATA.MCU_ID, CryptoES.SHA1(deviceIdentifier));
tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected');
connectionTimestamp = Date.now();
gui_log(i18n.getMessage('uniqueDeviceIdReceived', [deviceIdentifier]));
async function processBuildConfiguration() {
const buildApi = new BuildApi();
function onLoadCloudBuild(options) {
FC.CONFIG.buildOptions = options.Request.Options;
processCraftName();
});
}
await MSP.promise(MSPCodes.MSP2_GET_TEXT, mspHelper.crunch(MSPCodes.MSP2_GET_TEXT, MSPCodes.BUILD_KEY));
if (FC.CONFIG.buildKey.length === 32 && navigator.onLine) {
gui_log(i18n.getMessage('buildKey', FC.CONFIG.buildKey));
buildApi.requestBuildOptions(FC.CONFIG.buildKey, onLoadCloudBuild, processCraftName);
} else {
processCraftName();
}
}
async function processUid() {
await MSP.promise(MSPCodes.MSP_UID);
tracking.setFlightControllerData(tracking.DATA.MCU_ID, CryptoES.SHA1(FC.CONFIG.deviceIdentifier));
tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected');
connectionTimestamp = Date.now();
gui_log(i18n.getMessage('uniqueDeviceIdReceived', FC.CONFIG.deviceIdentifier));
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
processBuildConfiguration();
} else {
processCraftName();
}
}
async function processCraftName() {
@ -494,7 +517,19 @@ function setRtc() {
function finishOpen() {
CONFIGURATOR.connectionValid = true;
GUI.allowedTabs = GUI.defaultAllowedFCTabsWhenConnected.slice();
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) && FC.CONFIG.buildKey.length === 32) {
GUI.allowedTabs = GUI.defaultAllowedTabsCloudBuild;
for (const tab of GUI.defaultCloudBuildTabOptions) {
if (FC.CONFIG.buildOptions.some(opt => opt.toLowerCase().includes(tab))) {
GUI.allowedTabs.push(tab);
}
}
} else {
GUI.allowedTabs = GUI.defaultAllowedFCTabsWhenConnected.slice();
}
if (GUI.isCordova()) {
UI_PHONES.reset();