mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-16 04:45:20 +03:00
Cordova framework integration, Android support, mobile UI & options tab
Cordova integration and android platform : - Added cordova directory with required config - Added cordova applications generation in gulpfile - Added cordova development instructions - Used cordova plugins to simulate missing chrome api plugins (chrome.serial and chrome.fileSystem) - Added cordova clipboard support - Added android operating system and Cordova gui mode - Fixed some css and js files to make them working on Android as well as on computers - Added --skipdep argument to accelerate cordova build (gulp task) - Added a webview helper to help people to update the webview app of their device New options tab : - Added options tab replacing the options dropdown - Added option to switch between phones UI and computers UI Mobile interface and global interface improvements : - Simplified the structure of the header with flex css - Made headerbar and tab container responsive (compact headerbar and side menu) - All tabs are adapted to mobile interface (except firmware flasher) - The servos and adjustments tabs are not fully adapted but are "usable" - Improved header bar animation - Improved log expandation animation - Added swipe gesture to toggle side menu Fixes during the development : - Logo position - Dark mode - Auto connection - Error messages (cordova_chromeapi.js) - Responsive grid - Testing - Disconnection - Width of boxes inside the OSD tab - Fixed cli tab - OSD tab - Motor stop switch - White spaces in boxes - Dialogs size - Connect button state - Prevent tablet with a height larger than 575px to switch to computers ui - Fixed logging tab - Fixed code smell - Fixed yarn cordova plugin install issue - Fixed content_wrapper - Fixed vibrations when scrolling - Fixed scrolling bar alignment - Fixed dialogReportProblem height - Fixed rates logo - Fixed auto connection default value (true) - Fixed D to D max - Fixed dialogs Added required messages in locales/en/messages.json file Requested changes
This commit is contained in:
parent
ea880840a8
commit
4f93e54ae6
99 changed files with 9095 additions and 3015 deletions
|
@ -19,6 +19,7 @@ var GUI_control = function () {
|
|||
'changelog',
|
||||
'firmware_flasher',
|
||||
'privacy_policy',
|
||||
'options',
|
||||
'help'
|
||||
];
|
||||
this.defaultAllowedFCTabsWhenConnected = [
|
||||
|
@ -48,33 +49,51 @@ var GUI_control = function () {
|
|||
this.allowedTabs = this.defaultAllowedTabsWhenDisconnected;
|
||||
|
||||
// check which operating system is user running
|
||||
if (navigator.appVersion.indexOf("Win") != -1) this.operating_system = "Windows";
|
||||
else if (navigator.appVersion.indexOf("Mac") != -1) this.operating_system = "MacOS";
|
||||
else if (navigator.appVersion.indexOf("CrOS") != -1) this.operating_system = "ChromeOS";
|
||||
else if (navigator.appVersion.indexOf("Linux") != -1) this.operating_system = "Linux";
|
||||
else if (navigator.appVersion.indexOf("X11") != -1) this.operating_system = "UNIX";
|
||||
else this.operating_system = "Unknown";
|
||||
this.operating_system = GUI_checkOperatingSystem();
|
||||
|
||||
// Check the method of execution
|
||||
this.nwGui = null;
|
||||
try {
|
||||
this.nwGui = require('nw.gui');
|
||||
this.Mode = GUI_Modes.NWJS;
|
||||
this.nwGui = require('nw.gui');
|
||||
this.Mode = GUI_Modes.NWJS;
|
||||
} catch (ex) {
|
||||
if (window.chrome && chrome.storage && chrome.storage.local) {
|
||||
this.Mode = GUI_Modes.ChromeApp;
|
||||
} else {
|
||||
this.Mode = GUI_Modes.Other;
|
||||
}
|
||||
if (typeof cordovaApp !== 'undefined') {
|
||||
this.Mode = GUI_Modes.Cordova;
|
||||
} else {
|
||||
if (window.chrome && chrome.storage && chrome.storage.local) {
|
||||
this.Mode = GUI_Modes.ChromeApp;
|
||||
} else {
|
||||
this.Mode = GUI_Modes.Other;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const GUI_Modes = {
|
||||
NWJS: "NW.js",
|
||||
ChromeApp: "Chrome",
|
||||
Cordova: "Cordova",
|
||||
Other: "Other"
|
||||
};
|
||||
|
||||
function GUI_checkOperatingSystem() {
|
||||
if (navigator.appVersion.indexOf("Win") !== -1) {
|
||||
return "Windows";
|
||||
} else if (navigator.appVersion.indexOf("Mac") !== -1) {
|
||||
return "MacOS";
|
||||
} else if (navigator.appVersion.indexOf("CrOS") !== -1) {
|
||||
return "ChromeOS";
|
||||
} else if (navigator.appVersion.indexOf("Android") !== -1) {
|
||||
return "Android";
|
||||
} else if (navigator.appVersion.indexOf("Linux") !== -1) {
|
||||
return "Linux";
|
||||
} else if (navigator.appVersion.indexOf("X11") !== -1) {
|
||||
return "UNIX";
|
||||
} else {
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
// Timer managing methods
|
||||
|
||||
// name = string
|
||||
|
@ -363,13 +382,16 @@ GUI_control.prototype.selectDefaultTabWhenConnected = function() {
|
|||
};
|
||||
|
||||
GUI_control.prototype.isChromeApp = function () {
|
||||
return this.Mode == GUI_Modes.ChromeApp;
|
||||
return this.Mode === GUI_Modes.ChromeApp;
|
||||
};
|
||||
GUI_control.prototype.isNWJS = function () {
|
||||
return this.Mode == GUI_Modes.NWJS;
|
||||
return this.Mode === GUI_Modes.NWJS;
|
||||
};
|
||||
GUI_control.prototype.isCordova = function () {
|
||||
return this.Mode === GUI_Modes.Cordova;
|
||||
};
|
||||
GUI_control.prototype.isOther = function () {
|
||||
return this.Mode == GUI_Modes.Other;
|
||||
return this.Mode === GUI_Modes.Other;
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue